为什么我返回的老师名称是默认的None
class Teacher(object):
"""
描述教师编号、姓名、手机号码
"""
def __init__(self, num, name, phone):
self.num = num
self.name = name
self.phone = phone
def __str__(self):
"""返回教师编号和姓名属性"""
return "教师编号:" + str(self.num), "教师名称:" + str(self.name)
class Course(object):
"""
描述课程编号、课程名称、授课教师(teacher默认值为None)
"""
def __init__(self, cour_num, cour_name, cour_t=None):
self.cour_num = cour_num
self.cour_name = cour_name
self.cour_t = cour_t
def __str__(self):
return self.cour_num, self.cour_name
# 设定binding(self,teacher)方法实现课程绑定授课教师功能,
def binding(self, teacher):
"""
实现课程绑定授课教师功能
:param teacher: 传入教师类的实例
:return:
"""
# 用if判断教师类的实例是否存在,如果存在,将该实例赋值给课程
# 类的授课教师属性,并将课程名称和教师名称包装成字典进行返回
if teacher:
self.cour_t = teacher
cour_dict = {'课程名称:{},教师名称:{}'.format(self.cour_name, self.cour_t.name)}
return cour_dict
else:
return 0
=====================================
def create_teacher():
"""
初始化教师信息
:return: 列表形式返回
"""
# 将教师信息的每条数据分别传入教师类,分别使用变量接收
lst = [["T1", "张亮", "13301122001"], ["T2", "王朋", "13301122002"], ["T3", "李旭", "13301122003"],
["T4", "黄国发", "13301122004"], ["T5", "周勤", "13301122005"], ["T6", "谢富顺", "13301122006"],
["T7", "贾教师", "13301122007"], ["T8", "杨教师", "13301122008"]]
lst_teach = []
for i in lst:
t = Teacher(i[0], i[1], i[2])
# 创建列表存储步骤(1)教师类的八个实例对象,并返回
lst_teach.append(t)
return lst_teach
def course_to_teacher():
"""
实现课程与教师逐一绑定
:return: 以列表形式返回
"""
# 创建空列表
lst = []
# 调用课程信息初始化方法,使用变量ls_course接收
ls_course = prepare_course()
# 调用教师信息初始化方法,使用变量ls_teacher接收
ls_teacher = create_teacher()
# 循环遍历课程信息初始化方法的长度:结合课程信息初始化方法与遍历的数字,得到课程信息初始化方法列表中的
# 每条课程类实例,通过每条课程类实例去绑定(课程类中已定义绑定方法,直接调用即可)倒叙的每一条教师类信
# 息,将绑定后的每条数据追加到空列表
for i in range(0,len(ls_course)):
s = ls_course[i].binding(ls_teacher)
lst.append(s)
return lst
正在回答 回答被采纳积分+1
for i in range(0,len(ls_course)): s = ls_course[i].binding(ls_teacher) lst.append(s)
调用binding的时候传入的参数应该是Teacher的实例,你这边传入的是Teacher实例组成的列表,在调用时会产生问题,列表不存在,self.cour_t.name这个属性
def binding(self, teacher): """ 实现课程绑定授课教师功能 :param teacher: 传入教师类的实例 :return: """ # 用if判断教师类的实例是否存在,如果存在,将该实例赋值给课程 # 类的授课教师属性,并将课程名称和教师名称包装成字典进行返回 if teacher: self.cour_t = teacher cour_dict = {'课程名称:{},教师名称:{}'.format(self.cour_name, self.cour_t.name)} return cour_dict else: return 0
替换为
for course_index in range(0, len(ls_course)): teacher_index = len(ls_teacher) - course_index - 1 course2teacher = ls_course[course_index].binding(ls_teacher[teacher_index]) ls_course2teacher.append(course2teacher)
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星