НачатьНачать бесплатно

Использование внутренних атрибутов

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