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
Övningsinstruktioner
- Lägg till ett klassattribut
_MAX_DAYSsom 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 returnerarTrueom attributendayochmonthär mindre än eller lika med motsvarande maxvärden, ochFalseannars. 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())