Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Dodaj atrybut klasy _MAX_DAYS przechowują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 zwraca True, jeśli atrybuty day i month są mniejsze lub równe odpowiadającym im wartościom maksymalnym, a False w 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())
Edytuj i uruchom kod