ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Adaugă un atribut de clasă _MAX_DAYS care 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ă True dacă atributele day și month sunt mai mici sau egale cu valorile maxime corespunzătoare, și False î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())
Editează și rulează codul