ПочатиПочніть безкоштовно

Використання внутрішніх атрибутів

У цій вправі ви повернетеся до класу 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())
Редагувати та запускати код