Folosirea atributelor interne
În acest exercițiu, vei reveni la clasa BetterDate din Capitolul 2.
Decizi să adaugi o metodă care verifică validitatea datei, dar nu vrei să o faci parte din interfața publică a clasei BetterDate.
Clasa BetterDate este disponibilă în panoul de cod.
Acest exercițiu face parte din cursul
Programare orientată pe obiecte în Python
Instrucțiuni pentru exercițiu
- Adaugă un atribut de clasă
_MAX_DAYScare să stocheze numărul maxim de zile dintr-o lună -31. - Adaugă un alt atribut de clasă care să stocheze numărul maxim de luni dintr-un an -
12. Folosește convenția de denumire potrivită pentru a indica că acesta este un atribut intern. - Adaugă o metodă
_is_valid()care returneazăTruedacă atributeledayșimonthsunt mai mici sau egale cu valorile maxime corespunzătoare, șiFalseîn caz contrar. Asigură-te că faci referire la atributele de clasă prin numele lor!
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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())