使用内部属性
在本练习中,您将回到第 2 章的 BetterDate 类。
您决定添加一个用于检查日期有效性的方法,但又不希望它成为 BetterDate 的公共接口的一部分。
脚本面板中已提供 BetterDate 类。
本练习是课程的一部分
Python 面向对象编程
练习说明
- 添加一个类属性
_MAX_DAYS,用于存储每月天数的最大值31。 - 再添加一个类属性,用于存储每年月份的最大值
12。使用合适的命名约定来表明这是一个内部属性。 - 添加一个
_is_valid()方法:当day和month属性小于或等于对应的最大值时返回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())