Korzystanie z atrybutów wewnętrznych
W tym ćwiczeniu wracamy do klasy BetterDate z rozdziału 2.
Chcesz dodać metodę sprawdzającą poprawność daty, ale nie powinno to być częścią publicznego interfejsu klasy BetterDate.
Klasa BetterDate jest dostępna w panelu skryptu.
To ćwiczenie jest częścią kursu
Programowanie obiektowe w Pythonie
Instrukcje do ćwiczenia
- Dodaj atrybut klasy
_MAX_DAYSprzechowujący maksymalną liczbę dni w miesiącu –31. - Dodaj kolejny atrybut klasy przechowujący maksymalną liczbę miesięcy w roku –
12. Zastosuj odpowiednią konwencję nazewniczą, aby zaznaczyć, że jest to atrybut wewnętrzny. - Dodaj metodę
_is_valid(), która zwracaTrue, jeśli atrybutydayimonthsą mniejsze lub równe odpowiadającym im wartościom maksymalnym, aFalsew przeciwnym przypadku. Pamiętaj, żeby odwoływać się do atrybutów klasy po ich nazwach!
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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())