Day7组合

可以将那些重复的,固定的东西提出来,单独定义一个类。

例如:

 1 class Course:
 2     def __init__(self,course_name,course_period,course_price):
 3         self.course_name=course_name
 4         self.course_period=course_period
 5         self.course_price=course_price
 6     def tell_info(self):
 7         print(‘<课程名:%s 周期:%s 价格:%s>‘ %(self.course_name,self.course_period,self.course_price))
 8
 9 python=Course(‘Python‘,‘6mons‘,3000)
10 linux=Course(‘Lnux‘,‘3mons‘,2000)
11 bigdata=Course(‘BigData‘,‘1mons‘,1000)

例如这种:

 1 class OldboyPeople:
 2     school = ‘oldboy‘
 3     def __init__(self,name,age,sex):
 4         self.name=name
 5         self.age=age
 6         self.sex=sex
 7
 8     def eat(self):
 9         print(‘is eating‘)
10
11 class OldboyStudent(OldboyPeople):
12
13     def __init__(self,name,age,sex):
14         OldboyPeople.__init__(self,name,age,sex)
15         self.course=[]
16
17     def learn(self):
18         print(‘%s is learning‘  %self.name)
19
20
21 class OldboyTeacher(OldboyPeople):
22     def __init__(self,name,age,sex,salary,title):
23         OldboyPeople.__init__(self,name,age,sex)
24         self.salary=salary
25         self.title=title
26         self.course=[]
27
28     def teach(self):
29         print(‘%s is teaching‘  %self.name)
30
31
32 class Course:
33     def __init__(self,course_name,course_period,course_price):
34         self.course_name=course_name
35         self.course_period=course_period
36         self.course_price=course_price
37     def tell_info(self):
38         print(‘<课程名:%s 周期:%s 价格:%s>‘ %(self.course_name,self.course_period,self.course_price))
39
40 python=Course(‘Python‘,‘6mons‘,3000)
41 linux=Course(‘Lnux‘,‘3mons‘,2000)
42 bigdata=Course(‘BigData‘,‘1mons‘,1000)
43
44 # python.tell_info()
45
46
47 egon_obj=OldboyTeacher(‘egon‘,18,‘male‘,3.1,‘沙河霸道金牌讲师‘)
48 #
49 # egon_obj.course.append(python)
50 # egon_obj.course.append(linux)
51 #
52 # for obj in egon_obj.course:
53 #     obj.tell_info()
54
55
56 yl_obj=OldboyStudent(‘yanglei‘,28,‘female‘)
57 yl_obj.course.append(python)
58
59 for i in yl_obj.course:
60     # print(i.course_name,i.course_period,i.course_price)
61     i.tell_info()
时间: 2024-10-17 17:47:17

Day7组合的相关文章

Python之路,Day7 - Python基础7 面向对象

本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍打狗, 狗可以咬人,怎么描述这种不同的角色和他们的功能呢? 你搜罗了自己掌握的所有技能,写出了下面的代码来描述这两个角色 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 def per

[js高手之路]设计模式系列课程-组合模式+寄生组合继承实战新闻列表

所谓组合模式,就是把一堆结构分解出来,组成在一起,现实中很多这样的例子,如: 1.肯德基套餐就是一种组合模式, 比如鸡腿堡套餐,一般是是由一个鸡腿堡,一包薯条,一杯可乐等组成的 2.组装的台式机同理,由主板,电源,内存条,显卡, 机箱,显示器,外设等组成的 把一个成型的产品组成部件,分成一个个独立的部件,这种方式可以做出很多灵活的产品,这就是组合模式的优势 比如:家用台式机电脑,要求配置比较低, 这个时候只需要主板+电源+内存条+机箱+显示器+外设就可以了,不需要配置独立显卡 鸡腿堡+鸡翅+紫薯

Day-7:汇总数据

1.聚集函数:对行运行的函数,计算并返回一个值. avg()返回一列的平均值 count()返回一列的行数 max()返回一列的最大值 min()返回一列的最小值 sum()返回一列的总和值 1.1avg() 例子:返回products表中所有产品的平均价格 select avg(prod_price) as avg_price from products /* avg_price 6.823333 */ 例子:返回DLL01供应商的产品的平均价格(行) select avg(prod_pric

组合模式(Composite)

一.组合模式介绍 组合模式:将对象组合成树形结构以表示:部分--整体 的层次结构.组合模式使得用户对单个对象和组合对象的使用具有一致性. java中的组合是指:在A类里定义一个B类的引用,A拥有了B,叫组合.只是单纯的组合而已,而不是一种设计模式. 组合和组合模式不是一回事! 基本上见到的树形结构都使用到了组合模式. 组合模式结构图: 组合模式中有几个核心的部分: Leaf(叶子):表示该节点下面没有其他子节点了,就称为叶子 Compostie(容器构件):容器构件,该节点下还有其他子节点,理解

webform:分页组合查询

一个简单的分页组合查询页面 /// <summary> /// 查询方法 /// </summary> /// <param name="tsql">SQL语句</param> /// <param name="hh">哈希表</param> /// <returns></returns> public List<Goods> Select(string un

字符串排列组合算法

第二个算法是我笔试题遇到的,当时没有做出来,在网上看到别人写的算法,感觉太精妙了,就在这里分享出来. 全排列 所谓全排列,就是打印出字符串中所有字符的所有排列.例如输入字符串abc,则打印出 a.b.c 所能排列出来的所有字符串 abc.acb.bac.bca.cab 和 cba . #include<stdio.h> #include<string.h> static int number=0; void Swap(char *a ,char *b) { char temp =

WebForm 分页与组合查询

1.封装实体类 2.写查询方法 //SubjectData类 public List<Subject> Select(string name) { List<Subject> list = new List<Subject>(); cmd.CommandText = "select *from Subject where SubjectName like @a "; cmd.Parameters.Clear(); cmd.Parameters.Add

UVALive-7304 - Queue of Soldiers 【动态规划】【组合函数】【好题】

UVALive- 7304 - Queue of Soldiers 题目链接:7304 题目大意:士兵过山洞,必须以类似7 6 5 4 3 2 1顺序过.在第i个人之后,比i高的人都会被杀死,问如果要杀死k个人,有几种排队方法. 题目思路:先将士兵的身高离散化.假设N表示不同身高的数目.cnt[i] 表示i这个身高的人有多少个.(i的范围为1~N)sum[i]表示小于等于该身高段的士兵数目 然后开始dp,dp[i][j]表示已经到第i个士兵,已经死了j个人的方法数. 第三维遍历,q表示,第i+1

关于继承和组合的一点总结

入行时一直用c++写端游的逻辑,对这两者的区别几乎是0. 最先意识到有不同是在看了设计模式之后,但也没啥自己想法,代码照旧,只是依稀有个印象:都说组合好,少用继承. 用c++的那段时间对这句经验是没多少感受的.后来用erlang.lua.go开始自己设计搭建基础框架,这才在编码层级感受到两者的巨大不同. 一个印象非常深的例子:上个手游项目MOBA大改造,首先要做个类似dota的开房间系统,5v5. 想想房间也就是个小号地图嘛,便着手把嵌在活动中的地图代码扣了出来.做成单独的功能类,LogicMa