用python构造日期类,包括年、月、日等私有属性,构造函数和操作这些私有属性的公有函数以及将该对象转换成字符串的转换函数(就是能强制类型转换成string类,比如:有一个日期对象d=date(2019,3,26), 则string(d)就会返回一个字符串“2019年3月26日”);构造人员类,包括姓名,出生日期(复合了日期类的对象)等私有属性,构造函数和操作这些属性的公有函数;构造学生类,该类从人员类派生而来,包括学号和专业私有属性,构造函数和操作私有属性的公有函数。
时间: 2024-02-24 11:58:54 浏览: 64
下面是对应的Python代码实现:
```python
class Date:
def __init__(self, year, month, day):
self.__year = year
self.__month = month
self.__day = day
def get_year(self):
return self.__year
def get_month(self):
return self.__month
def get_day(self):
return self.__day
def __str__(self):
return str(self.__year) + "年" + str(self.__month) + "月" + str(self.__day) + "日"
class Person:
def __init__(self, name, birthday):
self.__name = name
self.__birthday = birthday
def get_name(self):
return self.__name
def get_birthday(self):
return self.__birthday
def get_birthday_string(self):
return str(self.__birthday)
class Student(Person):
def __init__(self, name, birthday, id, major):
super().__init__(name, birthday)
self.__id = id
self.__major = major
def get_id(self):
return self.__id
def get_major(self):
return self.__major
if __name__ == "__main__":
d = Date(2019, 3, 26)
print(str(d))
p = Person("张三", d)
print(p.get_name() + "的生日是" + p.get_birthday_string())
s = Student("李四", d, "20190101", "计算机科学")
print(s.get_name() + "的学号是" + s.get_id() + ",专业是" + s.get_major())
```
运行结果为:
```
2019年3月26日
张三的生日是2019年3月26日
李四的学号是20190101,专业是计算机科学
```
说明:这里使用了Python类的基本特性实现了题目要求的类的构造和函数操作。Date类表示日期,Person类表示人员,Student类从Person类派生而来,表示学生。其中,Person类中使用了Date类的对象,Student类中再添加了学号和专业。运行结果中可以看到,分别输出了日期、人员和学生的信息。
阅读全文