设计一个教师类Teacher, 要求如下: ①基本特征包括工号,姓名,学生成绩(声 明一维数组存储学生成绩,从键盘接收学生个数); ②设计一个能初始化工号、姓名的构造方法;另一个构造方法能初始化所有教师特征;③
时间: 2024-03-09 12:47:32 浏览: 11
好的,以下是教师类Teacher的代码实现,包括上述要求:
```python
class Teacher:
def __init__(self, id_num, name, scores=None):
self.id_num = id_num
self.name = name
if scores is None:
self.scores = []
else:
self.scores = scores
@classmethod
def init_all(cls, id_num, name, scores):
return cls(id_num, name, scores)
def add_score(self, score):
self.scores.append(score)
def get_avg_score(self):
if len(self.scores) == 0:
return 0
return sum(self.scores) / len(self.scores)
```
其中,`__init__` 方法是用于初始化工号和姓名的构造方法,`scores` 参数为可选参数,如果不传入,则默认为空列表。`init_all` 方法是用于初始化所有教师特征的构造方法。`add_score` 方法是用于往教师的学生成绩列表中添加新成绩的方法。`get_avg_score` 方法是用于计算教师学生平均成绩的方法。
示例用法:
```python
t1 = Teacher(1, "张三")
t2 = Teacher.init_all(2, "李四", [90, 80, 70])
t1.add_score(85)
t1.add_score(95)
print(t1.get_avg_score()) # 输出 90.0
print(t2.get_avg_score()) # 输出 80.0
```