python_面向对象_组合
组合: 一个类的对象是另外一个类对象的属性
# 组合
# 一个类的对象是另一个类对象的属性
# 什么时候使用组合:当两个类之间的关系是 :什么有什么的关系 : 班级有学生 学生有班级 班级有课程 图书有作者 学生有成绩
# 组合: 一个类的对象是另外一个类对象的属性
class Grade():
def __init__(self,class_name,course):
self.class_name = class_name
self.course=course
class Course():
def __init__(self,name,price,period):
self.name=name
self.price = price
self.period = period
py_course=Course("python",20000,"4months")
linux_course=Course("linux",10000,"3months")
python22=Grade("python22全栈",py_course)
linux57=Grade("linux57运维",linux_course)
python23=Grade("python23全栈",py_course)
linux58=Grade("linux58运维",linux_course)
print(python22.course.price) # 20000
print(linux57.course.period) # 3months
linux_course.price=15000 #组合的好处,只需要修改作为属性的类对象的属性值,就可以修改到所有将此对象作为属性的类实例
print(linux57.course.price) # 15000
print(linux58.course.price) # 15000
组合: 一个类的对象是另外一个类对象的属性
# 组合
# 一个类的对象是另一个类对象的属性
# 什么时候使用组合:当两个类之间的关系是 :什么有什么的关系 : 班级有学生 学生有班级 班级有课程 图书有作者 学生有成绩
# 组合: 一个类的对象是另外一个类对象的属性
class Grade():
def __init__(self,class_name,course):
self.class_name = class_name
self.course=course
class Course():
def __init__(self,name,price,period):
self.name=name
self.price = price
self.period = period
py_course=Course("python",20000,"4months")
linux_course=Course("linux",10000,"3months")
python22=Grade("python22全栈",py_course)
linux57=Grade("linux57运维",linux_course)
python23=Grade("python23全栈",py_course)
linux58=Grade("linux58运维",linux_course)
print(python22.course.price) # 20000
print(linux57.course.period) # 3months
linux_course.price=15000 #组合的好处,只需要修改作为属性的类对象的属性值,就可以修改到所有将此对象作为属性的类实例
print(linux57.course.price) # 15000
print(linux58.course.price) # 15000
python_面向对象_组合的更多相关文章
- Python_面向对象_类2
类的几个装饰器方法: @classmethod (类方法):使之无法访问实例变量 class Animal(object): def __init__(self, name): self.name = ...
- Python_面向对象_类1
面向对象:减少重复代码,提高效率,比函数式编程更高效 类的创建: 实例属性又称:成员变量,成员属性(或者字段) 面向对象的三大特性: 一.封装 把客观事物封装为抽象的类,并对外只暴露一个可用接口 使用 ...
- Python_面向对象_单例模式
class A(object): pass a1 = A() a2 = A() print(a1 == a2)print(id(a1))print(id(a2)) 结果: False 23257231 ...
- python_面向对象进阶(7)
第1章 面向对象特性—继承(补充) 1.1 接口类.抽象类介绍 1.2 接口类 1.3 接口类应用过程 1.3.1 第一版:完成多种支付方式接口 1.3.2 第二版: 归一化设计,统一支付方式 1.3 ...
- 黑马程序员_Java面向对象_内部类
6.面向对象_内部类 1.内部类定义 内部类:将一个类定义在另一个类里面,对里面那个类就称为内部类.(内置类.嵌套类)内部类可以被私有修饰. 2.内部类访问规则 访问特点: 内部类可以直接访问外部类中 ...
- 类命名空间与对象、实例的命名空间 and 面向对象的组合用法
类命名空间与对象.实例的命名空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类有两种属性:静态属性和动态属性 静态属性就是直接在类中定义的变量 动态属性就 ...
- Python()- 面向对象的组合用法
面向对象的组合用法 一个类中以另一个类的对象作为数据属性(一个类中引用另一个类的对象)一种 "有" 的关系: 比如:定义 1个人类 & 1个武器类 然后 张三 有 枪 李四 ...
- Python 进阶_OOP 面向对象编程_组合与继承
#目录 前言 组合 派生 通过继承来覆盖重载方法 最常用的重载场景实例方法的重载 从标准类中派生类方法的重载 前言 我们定义一个类是希望能够把类当成模块来使用,并把类嵌入到我们的应用代码中,与其他的数 ...
- Python 入门基础20 --面向对象_继承、组合
今日内容 组合:自定义类的对象作为类的属性 继承:父类与子类.多继承 1.组合 将自定义类的对象作为类的属性 class Teacher: def __init__(self, name): self ...
随机推荐
- dockerfile构建Tomcat镜像
dockerfile构建Tomcat镜像 一.镜像分层概念 二.制作tomcat镜像 2.1.创建分层目录 [root@node2 ~]# mkdir /app/{web/{nginx,tomcat, ...
- 天啦噜!知道硬盘很慢,但没想到比 CPU L1 Cache 慢 10000000 倍
前言 大家如果想自己组装电脑的话,肯定需要购买一个 CPU,但是存储器方面的设备,分类比较多,那我们肯定不能只买一种存储器,比如你除了要买内存,还要买硬盘,而针对硬盘我们还可以选择是固态硬盘还是机械硬 ...
- 55.Qt-将界面程序封装成静态库
1.生成dll 然后选择创建静态链接库: 创建的时候,记得勾选QtGui,并且修改pro文件,添加下面1句(这样就可以创建界面了): 修改staticlib.cpp: #include "s ...
- Python的逻辑控制true/false和循环
逻辑判断 简单的几个尝试,看下和java的一点不同之处 1 > 2 # False 1 < 2 <3 # True 42 != '42' # True 'Name' == 'name ...
- nginx的变量系统
本来想写一下nginx的脚本引擎的,但是看起来实在是有点庞大,一时间还不知道该从哪里写比较好.就先写一下他的变量系统吧,这是脚本引擎非常重要的组成部分. 首先为了表述清楚先规定几个术语吧 内置变量:n ...
- python的PEP8代码规范
一.缩进:每级缩进用4个空格.如果缩进不正确或缩进格式不统一,一般错误信息会明确告诉你,但有时也会出现invalid syntax报错.所谓缩进不正确,python的缩进是四个空格或一个TAB,如果缩 ...
- 微信小程序 audio组件 默认控件 无法隐藏/一直显示/改了controls=‘false’也没用2019/5/28
<audio>默认控件,如果需要隐藏,不需要特意设置controls = 'false',直接把这个属性删除即可,不然无论如何都会存在 之前,设置了controls = 'false' & ...
- 单源文件目录makefile
目录结构 由于只是用来编译简单的小型程序,所以目录尽量简洁: . ├── build │ ├── bin │ ├── .dep │ └── obj ├── makefile └── src ...
- pytest文档48-切换 base_url 测试环境(pytest-base-url)
前言 当我们自动化代码写完成之后,期望能在不同的环境测试,这时候应该把 base_url 单独拿出来,能通过配置文件和支持命令行参数执行. pytest-base-url 是 pytest 里面提供的 ...
- 【C语言编程学习笔记】利用462字节代码实现雅虎logo ACSII 动画!
ACSII 动画演示: 不过本文介绍的是另一个作品:c 代码实现雅虎 logo ACSII 动图. 运行后,你将会看到: 它是一个 20fps.抗锯齿的 Yahoo! logo ASCII 动 ...