文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

组合

2023-01-31 00:19

关注

一,解决类与类之间代码允余问题有两种方案:  1,继承    2,组合

1,继承:描述的是类与类之间,什么是什么的关系

2,组合:描述的是类与类之间的关系,是一种什么有什么关系

一个类产生的对象,该对象拥有一个属性,这个属性的值是来自另一个类的对象

 1 class Date:
 2     def __init__(self,year,mon,day):
 3         self.year = year
 4         self.mon = mon
 5         self.day = day
 6 
 7     def tell_birth(self):
 8         print('出生年月日<%s-%s-%s>' % (self.year, self.mon, self.day))
 9 
10 class OldboyPeople:
11     school = 'oldboy'
12 
13     def __init__(self, name, age, sex):
14         self.name = name
15         self.age = age
16         self.sex = sex
17 
18 class OldboyTeacher(OldboyPeople):
19     def __init__(self,name,age,sex,level,salary):
20         super().__init__(name,age,sex)
21         self.level=level
22         self.salary=salary
23 
24     def change_score(self):
25         print('teacher %s is changing score' %self.name)
26 
27 class Oldboystudent(OldboyPeople):
28     def __init__(self,name,age,sex,course,):
29         super().__init__(name,age,sex,)
30         self.course=course
31 
32     def choose(self):
33         print('student %s choose course' %self.name)
34 
35 
36 tea1=OldboyTeacher('egon',18,'male',9,3.1)
37 date_obj=Date(2000,1,1)
38 # date_obj.tell_birth()
39 
40 tea1.birth=date_obj
41 # print(tea1.birth)
42 # tea1.birth.tell_birth()
43 # tea1.change_score()
44 
45 stu1=Oldboystudent('张三',16,'male','linux')
46 stu1.birth=Date(2002,3,3)
47 stu1.birth.tell_birth()

二,组合练习:

 1 class OldboyPeople:
 2     school = 'oldboy'
 3 
 4     def __init__(self, name, age, sex,):
 5         self.name = name
 6         self.age = age
 7         self.sex = sex
 8 
 9 class OldboyTeacher(OldboyPeople):
10     def __init__(self,name,age,sex,level,salary):
11         super().__init__(name,age,sex)
12         self.level=level
13         self.salary=salary
14 
15         self.courses=[]
16 
17     def change_score(self):
18         print('teacher %s is changing score' %self.name)
19 
20     def tell_course_info(self):
21         print(('老师%s 教授的课程信息如下' %self.name).center(50,'='))
22         for course_obj in self.courses:
23             course_obj.info()
24 
25 
26 class Oldboystudent(OldboyPeople):
27     def __init__(self,name,age,sex):
28         super().__init__(name,age,sex,)
29         self.courses=[]
30 
31     def choose(self):
32         print('student %s choose course' %self.name)
33 
34     def tell_course_info(self):
35         print(('学生%s 学习的课程信息如下' % self.name).center(50, '='))
36         for course_obj in self.courses:
37             course_obj.info()
38 
39 class Course:
40     def __init__(self,cname,period,price):
41         self.cname=cname
42         self.period=period
43         self.price=price
44 
45     def info(self):
46         print('课程信息<名字:%s 周期:%s  价钱:%s>' %(self.cname,self.period,self.price))
47 
48 
49 tea1=OldboyTeacher('egon',18,'male',9,3.1)
50 stu1=Oldboystudent('张三',16,'male')
51 
52 python=Course('Python全栈开发','5mons',3000)
53 linux=Course('Linux高级架构师','5mons',2000)
54 go=Course('Go开发工程师','3mons',1000)
55 
56 
57 # # 给老师添加课程
58 # tea1.courses.append(python)
59 # tea1.courses.append(linux)
60 
61 # print(tea1.courses)
62 # tea1.courses[0].info()
63 # for course_obj in tea1.courses:
64 #     course_obj.info()
65 
66 # tea1.tell_course_info()
67 
68 
69 # 给学生添加课程
70 stu1.courses.append(python)
71 stu1.courses.append(go)
72 stu1.courses.append(linux)
73 stu1.tell_course_info()

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯