Python编写一个日期类,拥有年月日的数据,定义Myate__init__函数,实现对象的初始化,在数据合理时抛出异常
时间: 2024-02-01 20:15:02 浏览: 195
python使用 __init__初始化操作简单示例
5星 · 资源好评率100%
以下是一个简单的Python日期类实现,包含年月日数据和MyDate__init__函数的定义:
```python
class MyDate:
def __init__(self, year, month, day):
# 判断年份是否在合理范围内
if year < 1 or year > 9999:
raise ValueError("年份必须在1到9999之间")
# 判断月份是否在合理范围内
if month < 1 or month > 12:
raise ValueError("月份必须在1到12之间")
# 判断天数是否在合理范围内
if day < 1 or day > 31:
raise ValueError("天数必须在1到31之间")
# 判断闰年2月份天数
if month == 2 and day > 29:
raise ValueError("闰年2月份天数不能超过29天")
# 判断非闰年2月份天数
if month == 2 and day > 28 and not (year % 4 == 0 and year % 100 != 0 or year % 400 == 0):
raise ValueError("非闰年2月份天数不能超过28天")
# 判断30天月份天数
if day > 30 and (month == 4 or month == 6 or month == 9 or month == 11):
raise ValueError("该月份天数不能超过30天")
self.year = year
self.month = month
self.day = day
```
在初始化时,MyDate__init__函数会检查输入的年月日是否合理,如果不合理就抛出ValueError异常。其中包括:
- 年份必须在1到9999之间
- 月份必须在1到12之间
- 天数必须在1到31之间
- 闰年2月份天数不能超过29天
- 非闰年2月份天数不能超过28天
- 该月份天数不能超过30天
这些判断语句会确保日期数据的合法性,避免了出现非法日期的对象。
阅读全文