Использование внутренних атрибутов
В этом упражнении вы вернётесь к классу 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())