Kom igångKom igång gratis

Använda interna attribut

I den här övningen återvänder du till klassen BetterDate från kapitel 2.

Du bestämmer dig för att lägga till en metod som kontrollerar om datumet är giltigt, men du vill inte att den ska ingå i BetterDate:s publika gränssnitt.

Klassen BetterDate finns tillgänglig i skriptpanelen.

Den här övningen är en del av kursen

Objektorienterad programmering i Python

Visa kurs

Övningsinstruktioner

  • Lägg till ett klassattribut _MAX_DAYS som lagrar det maximala antalet dagar i en månad – 31.
  • Lägg till ytterligare ett klassattribut som lagrar det maximala antalet månader på ett år – 12. Använd lämplig namnkonvention för att markera att detta är ett internt attribut.
  • Lägg till en metod _is_valid() som returnerar True om attributen day och month är mindre än eller lika med motsvarande maxvärden, och False annars. Se till att referera till klassattributen med deras namn!

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Add class attributes for max number of days and months
class BetterDate:
    ____
    
    def __init__(self, year, month, day):
        self.year, self.month, self.day = year, month, day
        
    @classmethod
    def from_str(cls, datestr):
        year, month, day = map(int, datestr.split("-"))
        return cls(year, month, day)
    
    # Add _is_valid() checking day and month values
    ____
    
bd1 = BetterDate(2020, 4, 30)
print(bd1._is_valid())

bd2 = BetterDate(2020, 6, 45)
print(bd2._is_valid())
Redigera och kör kod