Práce s interními atributy
V tomto cvičení se vrátíš ke třídě BetterDate z 2. kapitoly.
Rozhodneš se přidat metodu, která ověřuje platnost data, ale nechceš, aby byla součástí veřejného rozhraní třídy BetterDate.
Třída BetterDate je dostupná v panelu se skriptem.
Toto cvičení je součástí kurzu
Object-Oriented Programming in Python
Pokyny k cvičení
- Přidej atribut třídy
_MAX_DAYSuchovávající maximální počet dní v měsíci –31. - Přidej další atribut třídy uchovávající maximální počet měsíců v roce –
12. Použij vhodnou konvenci pojmenování, která naznačí, že jde o interní atribut. - Přidej metodu
_is_valid(), která vrátíTrue, pokud jsou atributydayamonthmenší nebo rovny odpovídajícím maximálním hodnotám, aFalsev opačném případě. Nezapomeň odkazovat na atributy třídy jejich jmény!
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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())