开始使用免费开始使用

使用内部属性

在本练习中,您将回到第 2 章的 BetterDate 类。

您决定添加一个用于检查日期有效性的方法,但又不希望它成为 BetterDate 的公共接口的一部分。

脚本面板中已提供 BetterDate 类。

本练习是课程的一部分

Python 面向对象编程

查看课程

练习说明

  • 添加一个类属性 _MAX_DAYS,用于存储每月天数的最大值 31
  • 再添加一个类属性,用于存储每年月份的最大值 12使用合适的命名约定来表明这是一个内部属性。
  • 添加一个 _is_valid() 方法:当 daymonth 属性小于或等于对应的最大值时返回 True,否则返回 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())
编辑并运行代码