python记录_day17 类与类之间的关系
一、依赖关系
a类的对象是b类方法的参数
这种关系是我用着你,但你不属于我,比如公司和临时工的关系,是很弱的一种关系
class Zhiwu:
def __init__(self,name,atk):
self.name = name
self.atk = atk
def attack(self,zm): #对象作为参数传递
print("%s打了%s一下" % (self.name,zm.name))
zm.hp -= zhiwu.atk class Zombin:
def __init__(self,name,hp):
self.name = name
self.hp = hp zhiwu = Zhiwu("豌豆射手",10)
zm =Zombin("铁头娃",1000)
zhiwu.attack(zm)
zhiwu.attack(zm)
zhiwu.attack(zm) print("剩余血量",zm.hp) 结果:
豌豆射手打了铁头娃一下
豌豆射手打了铁头娃一下
豌豆射手打了铁头娃一下
剩余血量 970
依赖关系
二、关联关系、聚合关系、组合关系
a类的对象作为b类的一个属性
这种关系是我用着你,你也属于我
一对一的关系:
class Boy: def __init__(self,name,girlFriend= None):
self.name = name self.girlFriend = girlFriend #关联关系,对象是作为另一个类的属性的 def chi(self):
if self.girlFriend:
print("%s和%s去吃饭" %(self.name,self.girlFriend.name))
self.girlFriend.happy()
else:
print("单身狗,自己一个人吃吧") class Girl:
def __init__(self,name,age):
self.name =name
self.age = age
def happy(self):
print("出去吃东西很开心") g = Girl("小花",20)
b = Boy("张三",g)
# b.girlFriend = g b.chi() 结果:
张三和小花去吃饭
出去吃东西很开心
一对一关联
一对多的关系(反过来就是一对一)
比如,老师和学生,一个老师教多个学生,一个学生听一个老师讲
'''
一对多,反过来是一对一,
一个老师对应多个学生,反过来一个学生对应一个老师
'''
class Teacher: def __init__(self,name,lst = None): #作为属性,列表装的是对象
self.name= name
if lst == None:
self.lst = []
else:
self.lst = lst
# 添加学生
def add(self,s):
self.lst.append(s)
# 显示学生
def display(self):
for el in self.lst:
print(el.name) class Student: def __init__(self,name,number):
self.name = name
self.number = number s1 = Student("张三",1)
s2 = Student("李四",2)
s3 = Student("王五",3)
s4 = Student("麻子",4)
t = Teacher("涛哥")
t.add(s1)
t.add(s3)
t.add(s4)
t.display() 结果:
张三
王五
麻子
一对多
聚合关系:属于关联关系中的一种特例。侧重点是xxx和xxx聚合成xxx,各有各的生命周期。比如电脑,电脑里有CPU、硬盘、内存等,电脑挂了,CPU还是好的,还是完整的个体。
组合关系:也属于关联关系中的一种特例。写法上差不多, 组合关系比聚合还要紧密。比如 人的大脑、心脏、各个器官,这些器官组合成一个人。这时,人如果挂了,其他的东西也跟着挂了。
三、类的特殊方法
1、 类() 时自动执行__init__ , 进行初始化
2、 对象()时自动执行__call__ ,表示调用
3、 对象[key] 自动执行 __getitem__
4、对象[key] = value 自动执行 __setitem__
5、del 对象[key] 自动执行 __delitem__
6、 对象+对象 自动执行 __add__
7、with 对象 as 变量 自动执行 __enter__ 和 __exit__
8、 print(对象) 自动执行 __str__
9、 __hash__ == None 干掉可哈希,这样对象就不可哈希了
10、 __repr__ 用repr()时执行
11、__lt__ 用<时执行 __gt__ 用>时执行
12、 __le__ 用<=时执行 __ge__ 用>=时执行
13、 __eq__ 用==时执行
14、__format__ 用format()时调用
15、__new__ 创建对象时开辟内存,自动执行
python记录_day17 类与类之间的关系的更多相关文章
- Python面向对象02/类的空间问题、类与对象之间的关系、类与类之间的关系
Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 2. 类与对象之间 ...
- python 面向对象专题(二):类的空间问题、类与对象之间的关系、类与类之间的关系
https://www.cnblogs.com/liubing8/p/11308127.html 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 ...
- PHP类和对象之间的关系
类是对象的描述: 类和对象之间的关系类似于建房子的图纸和房子: 创建类--new对象--用对象: 一.对象的两个特性: --对象的行为(功能):可以对对象施加操作,例如,电视机的开.关.转换频道: - ...
- JAVA面向对象-----接口与类、接口之间的关系
接口与类.接口之间的关系 大家之前都知道类与类之间的关系继承,那么接口与类之间又是怎样子的关系呢? 接口与类之间是实现关系.非抽象类实现接口时,必须把接口里面的所有方法实现.类实现接口用关键字impl ...
- UML图类,接口之间的关系
UML图类之间的关系(来自大话设计模式中的一张图,代表了类,接口之间的各种关系)
- 一文读懂Python web框架和web服务器之间的关系
我们都知道 Python 作为一门强大的语言,能够适应快速原型和较大项目的制作,因此被广泛用于 web 应用程序的开发中. 在面试的过程中,大家或多或少都被问到过这样一个问题:一个请求从浏览器发出到数 ...
- 关于package,import,和“找不到可以加载的主类”报错之间的关系
正在回顾java基础 目录结构如下: 一 以下代码,进入Example所在的文件夹, javac和java都不会报错 public class Example{ public static void ...
- Java 中判断类和实例之间的关系
判断类与实例的关系有以下三种方式 1.instanceof关键字,用来判断对象是否是类的实例 (对象 => 类 ) 2.isAssignableFrom,用来判断类型间是否存在派生关系 (类 ...
- C# 多线程 类构造函数 类方法之间的关系
先定一个类,既有构造函数又有类方法: public class WriteNumber { /// <summary> /// 构造函数 /// </summary> publ ...
随机推荐
- HDU 4825 Xor Sum(01字典树)题解
思路:先把所有数字存进字典树,然后从最高位贪心. 代码: #include<set> #include<map> #include<stack> #include& ...
- 最最简单的c语言函数汇编分析
0x01 环境 xp+vc6.0 0x02 代码 int plus(int x, int y) { return 0; } 以下是vc6.0的反汇编窗口 1: int plus(int x, int ...
- 卸载linux系统上自带的mysql
步骤: 1.打开centos命令提示符,切换为root用户 2.输入rpm -qa|grep -i mysql命令以检查系统含有的mysql插件,回车,若没有则说明无自带mysql,系统很干净.若有显 ...
- 【使用指南】WijmoJS 前端开发工具包
为方便广大前端开发人员更好的使用 WijmoJS 前端开发工具包,葡萄城专门推出了 WijmoJS 使用指南,该指南详细地介绍了如何把 WijmoJS 各种强大的功能应用到您自己的 Web 项目中,助 ...
- Long类型转json时前端js丢失精度解决方案
一.问题背景 Java后端开发过程中,尤其是id字段,因数值太大,通过json形式传输到前端后,在js解析时,会丢失精度. 如果对精度丢失没有什么概念,可以看一个知乎的帖子,来感受一下:https:/ ...
- Sublime Text3 插件:DocBlockr与javascript注释规范
原:http://www.ithao123.cn/content-719950.html 1.引子 在写代码的时候,尤其是写脚本,最需要注释了.目前脚本.样式的注释格式都有一个已经成文的约定规范(这些 ...
- KNN——图像分类
内容参考自:https://zhuanlan.zhihu.com/p/20894041?refer=intelligentunit 用像素点的rgb值来判断图片的分类准确率并不高,但是作为一个练习kn ...
- 【RFT】【环境配置】Mac
参考地址:http://blog.csdn.net/u010044052/article/details/70858015?utm_source=itdadao&utm_medium=refe ...
- 【Web Service】
Restful: (Representational State Transfer 表现层[指客户端]状态[指服务器端]转化) RPC: RPC 风格的开发关注于服务器/客户端之间的方法调用, 而并 ...
- ZJOI-2017 R1游记
无实力非既得利益的$xrdog$作为一名外卡选手去参加ZJOI2017啦... Day 0: 颓?(细节待填坑..) Day 1: 上午我来到讲课现场发现讲课内容是:搜索专题 QwQ不太清醒的我一下 ...