Začněte nyníZačněte zdarma

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

Zobrazit kurz

Pokyny k cvičení

  • Přidej atribut třídy _MAX_DAYS uchová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 atributy day a month menší nebo rovny odpovídajícím maximálním hodnotám, a False v 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())
Upravit a spustit kód