有教师和学生两类成员。其中,教师有名字、年龄、所属学校、所属学院、所属系等属性以及教书的技能。学生有名字、年龄、所属学校、所属学院、所属系等属性以及学习的技能。 请采用类的继承以及组合方式完成程序编写,实现一次性打印出某位老师或某位学生的所属学校、所属学院和所属系等相关信息。
时间: 2024-11-22 20:39:05 浏览: 21
在Python中,我们可以采用继承和组合的方式设计这两个类。首先,创建一个基础的`Member`类,然后让`Teacher`和`Student`类分别继承自`Member`。同时,每个类都可以包含具体的属性。以下是简单的实现:
```python
class Member:
def __init__(self, name, age, school, college, department):
self.name = name
self.age = age
self.school = school
self.college = college
self.department = department
def display_info(self):
print(f"{self.name}的所属信息:")
print(f"学校:{self.school}")
print(f"学院:{self.college}")
print(f"系:{self.department}")
class Teacher(Member):
def __init__(self, *args, teaching_skills=None):
super().__init__(*args)
self.teaching_skills = teaching_skills if teaching_skills is not None else []
def display_teaching_skills(self):
if self.teaching_skills:
print(f"教学技能:{', '.join(self.teaching_skills)}")
class Student(Member):
def __init__(self, *args, learning_skills=None):
super().__init__(*args)
self.learning_skills = learning_skills if learning_skills is not None else []
def display_learning_skills(self):
if self.learning_skills:
print(f"学习技能:{', '.join(self.learning_skills)}")
# 示例:打印教师John的信息
john = Teacher("John", 35, "University of ABC", "Computer Science College", "Software Engineering")
john.display_info()
john.display_teaching_skills()
# 示例:打印学生Alice的信息
alice = Student("Alice", 20, "University of XYZ", "Mathematics College", "Applied Mathematics")
alice.display_info()
alice.display_learning_skills()
```
在这个示例中,`Teacher`和`Student`类都继承了`Member`类,共享了基础信息。同时,它们各自还维护了一些特定的属性如`teaching_skills`和`learning_skills`。
阅读全文