日期类使用三个整数记录年、月、日,其中月份的取值范围为1-12,日期的取值范围为1-31,尝试写出该类的构造函数,接受三个整数作为年月日的值,并验证月份和日期的有效性,当给出的日期数据无效时抛出自定义的日期范围异常,并写出测试代码,从不同的角度触发异常。
时间: 2023-10-10 13:14:55 浏览: 70
定义一个名为Date的类,用于输入并验证日期
5星 · 资源好评率100%
好的,我来为你写出该类的构造函数:
```python
class Date:
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
if not (1 <= self.month <= 12):
raise ValueError("Invalid month value!")
if not (1 <= self.day <= 31):
raise ValueError("Invalid day value!")
```
在该构造函数中,我们首先接受三个整数作为年月日的值,并将它们分别存储在对象的属性中。然后,我们验证月份和日期的有效性,如果它们不在范围内,就会抛出自定义的日期范围异常。
接下来,我为你编写测试代码,从不同的角度触发异常:
```python
# 测试月份和日期均在有效范围内的情况
d = Date(2022, 7, 4)
print(d.year, d.month, d.day)
# 测试月份无效的情况
try:
d = Date(2022, 13, 4)
except ValueError as e:
print("Error:", e)
# 测试日期无效的情况
try:
d = Date(2022, 7, 32)
except ValueError as e:
print("Error:", e)
```
在该测试代码中,我们首先测试了月份和日期均在有效范围内的情况,然后分别测试了月份无效和日期无效的情况。当遇到无效的情况时,程序会抛出自定义的日期范围异常,并输出错误信息。
阅读全文