创建SchoolMem类,该类中包含三个数据成员:姓名、性别、年龄;创建Student类,继承自SchoolMem类,添加额外三个数据成员:班级、学号和数量统计;创建Teacher类,继承自SchoolMem类,添加额外三个数据成员:学院、工号和数量统计。要求给每个类适当添加属性、成员方法和特殊方法(如构造方法),实现学生和教师信息的输出,实现并测试这个类。
时间: 2023-06-02 15:04:35 浏览: 162
一个 Student类:包括姓名、学号、性别、专业、家庭地址。
好的,您的问题是关于创建SchoolMem、Student和Teacher类的,让我来帮您解答。
首先,我们可以定义SchoolMem类,该类中应该包含姓名、性别、年龄三个数据成员。代码如下:
```python
class SchoolMem:
def __init__(self, name, gender, age):
self.name = name
self.gender = gender
self.age = age
```
其次,我们需要定义Student类,继承自SchoolMem类,添加额外三个数据成员:班级、学号和数量统计。代码如下:
```python
class Student(SchoolMem):
count = 0
def __init__(self, name, gender, age, class_name, stu_id):
super().__init__(name, gender, age)
self.class_name = class_name
self.stu_id = stu_id
Student.count += 1
```
在上面的代码中,我们定义了一个count属性,用于计算学生数量。另外,我们覆写了SchoolMem类的构造方法,并且添加了class_name和stu_id两个新的数据成员。
最后,我们需要定义Teacher类,继承自SchoolMem类,添加额外三个数据成员:学院、工号和数量统计。代码如下:
```python
class Teacher(SchoolMem):
count = 0
def __init__(self, name, gender, age, college, tea_id):
super().__init__(name, gender, age)
self.college = college
self.tea_id = tea_id
Teacher.count += 1
```
在上面的代码中,我们再次定义了一个count属性,用于计算教师数量。另外,我们覆写了SchoolMem类的构造方法,并且添加了college和tea_id两个新的数据成员。
现在我们可以测试一下这个类,并且输出学生和教师的信息。代码如下:
```python
s1 = Student("小明", "男", 18, "三年二班", "001")
s2 = Student("小红", "女", 19, "三年二班", "002")
print("姓名\t性别\t年龄\t班级\t学号")
print(s1.name,"\t", s1.gender,"\t", s1.age,"\t", s1.class_name,"\t", s1.stu_id)
print(s2.name,"\t", s2.gender,"\t", s2.age,"\t", s2.class_name,"\t", s2.stu_id)
print("学生数量:", Student.count)
t1 = Teacher("张老师", "男", 35, "计算机科学与技术", "001")
t2 = Teacher("李老师", "女", 40, "软件工程", "002")
print("姓名\t性别\t年龄\t学院\t工号")
print(t1.name,"\t", t1.gender,"\t", t1.age,"\t", t1.college,"\t", t1.tea_id)
print(t2.name,"\t", t2.gender,"\t", t2.age,"\t", t2.college,"\t", t2.tea_id)
print("教师数量:", Teacher.count)
```
在上面的代码中,我们创建了两个学生对象和两个教师对象,然后分别输出了它们的信息。最后,我们统计了学生和教师的数量。
希望这个回答能够解决您的问题。
阅读全文