1、构造日期类,包括年、月、日等私有属性,构造函数和操作这些私有属性的公有函数以及将该对象转换成字符串的转换函数(就是能强制类型转换成string类,比如:有一个日期对象d=date(2019,3,26), 则string(d)就会返回一个字符串“2019年3月26日”);构造人员类,包括姓名,出生日期(复合了日期类的对象)等私有属性,构造函数和操作这些属性的公有函数;构造学生类,该类从人员类派生而来,包括学号和专业私有属性,构造函数和操作私有属性的公有函数。
时间: 2024-03-14 13:45:01 浏览: 67
帮助初学者的构造函数类型
好的,以下是对应的代码实现:
```python
class Date:
def __init__(self, year, month, day):
self.__year = year
self.__month = month
self.__day = day
def __str__(self):
return f"{self.__year}年{self.__month}月{self.__day}日"
class Person:
def __init__(self, name, birth_date):
self.__name = name
self.__birth_date = birth_date
def __str__(self):
return f"姓名:{self.__name},出生日期:{str(self.__birth_date)}"
class Student(Person):
def __init__(self, name, birth_date, student_id, major):
super().__init__(name, birth_date)
self.__student_id = student_id
self.__major = major
def __str__(self):
return f"{super().__str__()},学号:{self.__student_id},专业:{self.__major}"
```
这里`Date`类包括年、月、日等私有属性,以及构造函数和将该对象转换成字符串的转换函数。`Person`类包括姓名、出生日期(复合了`Date`类的对象)等私有属性,以及构造函数和操作这些属性的公有函数。`Student`类从`Person`类派生而来,包括学号和专业私有属性,以及构造函数和操作这些属性的公有函数。
注意,我们在`Person`类中调用`Date`类的`__str__`方法时,需要使用`str(self.__birth_date)`,而不是直接使用`self.__birth_date`,因为`self.__birth_date`是一个`Date`对象,需要先将其转换成字符串类型。
阅读全文