Course类返回空

Course类返回空


根据题目提示,Course类写出来是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Course(object):
 
    def __init__(self, course_id, course_name, teacher=None):
        self.course_id = course_id
        self.course_name = course_name
        self.teacher = teacher
 
    def binding(self,teacher):
        result = {}
        if teacher:
            self.teacher = teacher
            result.update({
                "课程名称"self.course_name, "教师名称"self.teacher
            })
            return result
        else:
            return

在不传入teacher的情况下,得到的是对象,运行结果是这个

1
<__main__.Course object at 0x7fc0d4db9d00>

后面的prepare_course方法又只传入课程编号和姓名,这样打印出来全是课程对象了,怎么搞

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小猿 2024-01-05 13:03:43

同学,你好!绑定时,传入的teacher 是个对象,教师名称就是对象的名字属性,如老师定义的是t_name 为教师的名字属性,同学按照自己定义教师类的名字属性写上就可以的

https://img1.sycdn.imooc.com/climg/65978cb009c51d4b08910705.jpg

prepare_course()方法可以参考以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def prepare_course():
    """
    创建课程
    :return: 装载课程对象的list
    """
    course_list = []
    courses_dict = {"01""网络爬虫""02""数据分析",
                    "03""人工智能""04""机器学习",
                    "05""云计算",   "06""大数据",
                    "07""图像识别""08""Web开发"}
    for course in courses_dict.items():
        = Course(course[0], course[1])
        course_list.append(c)
    return course_list

若同学还不理解,同学可把已写好的所有代码粘贴到问题区,老师看看同学的代码思路,方便解决同学问题。

祝学习愉快~

  • 提问者 神圣的菠萝蜜 #1

    没看懂,这是我写的代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    class Student(object):
     
        def __init__(self, student_id, student_name):
            self.student_id = student_id
            self.student_name = student_name
            self.course = []
     
        def __str__(self):
            return "name:{},s_number:{}".format(self.student_name, self.student_id)
     
        def course_detail(self):
            return "name:{},selected:{}".format(self.student_name, self.course)
     
        def add_course(self, cour_info):
            self.course.append(cour_info)
            return "name:{},selected:{}".format(self.student_name, self.course)
     
     
    class Teacher(object):
     
        def __init__(self, teacher_id, teacher_name, phone_number):
            self.teacher_id = teacher_id
            self.teacher_name = teacher_name
            self.phone_number = phone_number
     
        def __str__(self):
            return "teacher_id:{},name:{}".format(self.teacher_id, self.teacher_name)
     
     
    class Course(object):
     
        def __init__(self, course_id, course_name, teacher=None):
            self.course_id = course_id
            self.course_name = course_name
            self.teacher = teacher
     
        def binding(self,teacher):
            result = {}
            if teacher:
                self.teacher = teacher
                result.update({
                    "课程名称"self.course_name, "教师名称"self.teacher
                })
                return result
            else:
                return

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    from example import Student, Teacher, Course
     
     
    def introduction(str):
        print("****************************{}*********************************".format(str))
     
     
    # 课程信息初始化
    def prepare_course():
        course_dict = {
            "01""网络爬虫""02""数据分析",
            "03""人工智能""04""机器学习",
            "05""云计算""06""大数据",
            "07""图像识别""08""Web开发"
        }
        course_list = []
        for key, value in course_dict.items():
            course=Course(course_id=key, course_name=value)
            course_list.append(course)
        return course_list
     
     
    # 教师信息初始化
    def create_teacher():
        teacher1 = Teacher(teacher_id="T1", teacher_name="张亮", phone_number="13301122001")
        teacher2 = Teacher(teacher_id="T2", teacher_name="王朋", phone_number="13301122002")
        teacher3 = Teacher(teacher_id="T3", teacher_name="李旭", phone_number="13301122003")
        teacher4 = Teacher(teacher_id="T4", teacher_name="黄国发", phone_number="13301122004")
        teacher5 = Teacher(teacher_id="T5", teacher_name="周勤", phone_number="13301122005")
        teacher6 = Teacher(teacher_id="T6", teacher_name="谢富顺", phone_number="13301122006")
        teacher7 = Teacher(teacher_id="T7", teacher_name="贾教师", phone_number="13301122007")
        teacher8 = Teacher(teacher_id="T8", teacher_name="杨教师", phone_number="13301122008")
        teacher_list = [teacher8, teacher7, teacher6, teacher5, teacher4, teacher3, teacher2, teacher1]
        return teacher_list
     
     
    def course_to_teacher():
        list_a = []
        is_course = prepare_course()
        is_teacher = create_teacher()
        for in range(len(is_course)):
            course=Course(course_id=is_course[0], course_name=is_course[1],teacher=is_teacher[len(is_course)-1-i])
            course_teacher_binding =course.binding(is_teacher[len(is_course)-1-i])
            list_a.append(course_teacher_binding)
        return list_a
     
     
    # 学生信息初始化
    def create_student():
        student_info = []
        ls_student = ["小亮""小明""李红""小丽""Jone""小彤""小K""慕慕"]
        for in range(len(ls_student)):
            student_info.append(Student(student_id=1000+i,student_name=ls_student[len(ls_student)-1-i]))
        return student_info


    2024-01-05 20:49:42
  • 同学,你好!1、is_course 列表中的元素是课程对象,在实例化课程时应传入课程名字,即课程类的course_name属性

    https://img1.sycdn.imooc.com/climg/6599fad10963ba0e05690175.jpg

    而不是课程对象,即is_course[1]改为is_course[1].course_name

    https://img1.sycdn.imooc.com/climg/6599f86a093281c912200301.jpg

    2、课程类中的binding方法传入的teacher参数是teacher对象,要想输出教师名字,要调用teacher类的teacher_name属性。如下图:

    https://img1.sycdn.imooc.com/climg/6599f9fd094eb94008270222.jpg

    祝学习愉快~

    2024-01-07 09:14:25
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码