Course类返回空

Course类返回空


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

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的情况下,得到的是对象,运行结果是这个

<__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()方法可以参考以下代码

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

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

祝学习愉快~

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

    没看懂,这是我写的代码

    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

    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 i 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 i 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下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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