Використання внутрішніх атрибутів
У цій вправі ви повернетеся до класу BetterDate з Розділу 2.
Ви вирішили додати метод, який перевіряє коректність дати, але не хочете робити його частиною публічного інтерфейсу BetterDate.
Клас BetterDate доступний у панелі сценарію.
Ця вправа є частиною курсу
Об'єктноорієнтоване програмування в Python
Інструкції до вправи
- Додайте атрибут класу
_MAX_DAYS, що зберігатиме максимальну кількість днів у місяці —31. - Додайте ще один атрибут класу, що зберігатиме максимальну кількість місяців у році —
12. Використайте відповідну домовленість щодо іменування, щоб позначити, що це внутрішній атрибут. - Додайте метод
_is_valid(), який повертаєTrue, якщо атрибутиdayіmonthменші або дорівнюють відповідним максимальним значенням, іFalse— інакше. Обов'язково звертайтеся до атрибутів класу за їхніми назвами!
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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())