编写一个日期类Mydate,定义Mydate的__init__函数实现对象的初始化,在数据不合理时抛出异常
时间: 2024-02-03 16:15:55 浏览: 136
以下是一个示例Mydate类,它可以检查日期的正确性并抛出异常:
```python
class Mydate:
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
if not self._is_valid_date():
raise ValueError("Invalid date")
def _is_valid_date(self):
# 检查月份是否在1-12之间
if not 1 <= self.month <= 12:
return False
# 根据月份和年份计算该月的天数
if self.month in [4, 6, 9, 11]:
days_in_month = 30
elif self.month == 2:
if self.year % 4 == 0 and (self.year % 100 != 0 or self.year % 400 == 0):
days_in_month = 29
else:
days_in_month = 28
else:
days_in_month = 31
# 检查日期是否在1-该月天数之间
if not 1 <= self.day <= days_in_month:
return False
return True
```
使用示例:
```python
# 正常情况
my_date = Mydate(2019, 12, 31)
# 日期不合法
my_date = Mydate(2021, 2, 29)
# 抛出 ValueError: Invalid date
```
阅读全文