我的编程空间,编程开发者的网络收藏夹
学习永远不晚

组合

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

组合

一,解决类与类之间代码允余问题有两种方案:  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

组合

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

组合

一,解决类与类之间代码允余问题有两种方案:  1,继承    2,组合1,继承:描述的是类与类之间,什么是什么的关系2,组合:描述的是类与类之间的关系,是一种什么有什么关系一个类产生的对象,该对象拥有一个属性,这个属性的值是来自另一个类的对
2023-01-31

类的组合

目录 什么是组合 为什么用组合 如何用组合 组合就是一个类的对象具备某一个属性,该属性的值是指向另外外一个类的对象组合是用来解决类与类之间代码冗余的问题
2023-01-31

Python_类的组合

A类与B类之间没有共同点,但是A类与B类之间有关联,比如说,医院类与患者类是两个完全不同的类,他们之间没有任何关联,但是患者是属于医院的。此时我们就要用到类的组合来关联医院类与患者类。详细操作详见下图:该部分代码为:class Hospit
2023-01-31

怎么在php中组合数组

这篇文章给大家介绍怎么在php中组合数组,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。php是什么语言php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。
2023-06-14

PHP数组合并后,如何分割合并后的数组?

如何将合并後的 php 陣列分割成原始部分?使用 array_chunk() 函數將陣列分割成特定大小的區塊。使用自定義循環逐個元素地遍歷,根據原始來源分配到不同的陣列。如果陣列包含鍵值,可以使用 array_group() 根據元素進行分
PHP数组合并后,如何分割合并后的数组?
2024-04-28

C / C++ GetAsyncKeyState()组合键

在C / C ++中,可以使用GetAsyncKeyState()函数来检测组合键。以下是一个示例代码,演示如何使用GetAsyncKeyState()检测组合键:```c++#include #include int main(){whi
2023-09-26

元组、字典、集合

1、作用存多个值,对比列表来说,元组不可变,主要是用来读。2、定义与列表类型比,只不过[ ]换成()t = ()  #本质:t = tuple(())print(t,type(t))  #() ​#强制类型转换中
2023-01-31

数组切片合并多个数组

使用数组切片可以轻松合并多个数组,其语法为:array[start:end:step],start为起始索引,end为结束索引,step为步长。这种方法比使用循环或连接操作符更清晰简洁,且更有效率。例如,将数组arr1、arr2和arr3合
数组切片合并多个数组
2024-04-30

python全对偶组合与全覆盖组合比较实例分析

这篇“python全对偶组合与全覆盖组合比较实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python全对偶组合与全
2023-07-02

python元组 字典 集合

1.列表构建栈的数据结构:栈的特点:先进后出#!/usr/bin/env python#coding:utf-8 stack = []info = """ 栈结构 1.入栈 2.出栈 3.栈长度
2023-01-31

day25-python之继承组合

1.上节回顾 1 class School: 2 x=1 3 def __init__(self,name,addr,type): 4 self.Name=name 5 self.Addr=a
2023-01-31

关于python类的组合

关于python类的组合,绞尽脑汁之后,写了一个生活中的简单例子,有需要的童鞋可以理解下,水平有限,不对的地方望指正#coding:utf-8class Engine():#某发动机厂家描述发动机对象def init(self, engin
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录