#编写一个日期类MyDate, 拥有年月日的数据 #定义MyDate的__init__函数实现对象的初始化,在数据不合理时抛出异常。
时间: 2024-02-03 07:13:42 浏览: 77
Android日期选择器实现年月日三级联动
下面是一个简单的MyDate类的代码示例:
```python
class MyDate:
def __init__(self, year, month, day):
if not (1 <= month <= 12):
raise ValueError("Month must be between 1 and 12.")
if not (1 <= day <= 31):
raise ValueError("Day must be between 1 and 31.")
if month in [4, 6, 9, 11] and day == 31:
raise ValueError("Month {0} does not have 31 days.".format(month))
if month == 2 and day > 29:
raise ValueError("February does not have more than 29 days.")
if month == 2 and day == 29 and not (year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)):
raise ValueError("Invalid leap year.")
self.year = year
self.month = month
self.day = day
```
在这个例子中,我们定义了一个MyDate类,它有年月日三个属性,其中的`__init__`函数实现了对象的初始化。在初始化时,我们先检查月份和日期是否在合法范围内,如果不是,则抛出一个`ValueError`异常。然后,我们检查特定月份的日期是否合法(比如2月和4月),如果不是,则同样抛出异常。最后,我们检查闰年的情况,如果不是闰年但日期是2月29日,则同样抛出异常。如果一切都符合要求,则将年月日存储在对象的属性中。
阅读全文