类和类的关系
在我们的世界中事物和事物之间总会有一些联系.
在面向对象中. 类和类之间也可以产生相关的关系
1. 依赖关系
执行某个动作的时候. 需要xxx来帮助你完成这个操作. 此时的关系是最轻的.
随时可以更换另外一个东西来完成此操作
class Jiang:
def __init__(self,name,hp,ad):
self.name = name
self.hp = hp
self.ad = ad
def c(self):
self.hp -= self.ad
print(f"{self.name}打僵尸,僵尸掉血{self.ad},还剩{self.hp}血")
def chi(self,b):
b.d()
z = Zhi("撑杆僵尸",100,30)
j = Jiang("豌豆",150,50)
z.da(j)
j.chi(z)
z.da(j)
j.chi(z)
z.da(j)
2. 关联关系
在对象里面埋对象
1. 一对一关系
卢本伟和他的女朋友 self.girlFriend = None (卢本伟的参数中给一个默认参数)
class Boy:
def __init__(self, name, girlFriend=None):
self.girlFriend = girlFriend
self.name = name
def chi(self):
if self.girlFriend:
print(f"{self.name}带着他的女朋友{self.girlFriend.name1}去吃饭")
else:
print("单身狗, 你还有脸吃饭?")
class Girl:
def __init__(self, name,name1):
self.name = name
self.name1 = name1
g = Girl("UU妹","范冰冰")
b = Boy("卢本伟",g)
b.chi()
2. 一对多关系
一个学校. 一堆老师 self.list = [] (列表用来添加老师)
class School:
def __init__(self,name):
self.name = name
self.lis = []
def func1(self,t):
self.lis.append(t)
def func2(self):
for i in self.lis :
i.work()
class Teach :
def __init__(self,name):
self.name = name
def work(self):
print(f"{self.name}正在上课")
t1 = Teach("卢本伟")
t2 = Teach("梦泪")
t3 = Teach("赵梦玥")
t4 = Teach("大司马")
s = School("天王巨星")
s.func1(t1)
s.func1(t2)
s.func1(t4)
s.func1(t3)
s.func2()
类中的关系: 依赖关系是最轻的. 最重的是继承关系. 关联关系是比较微妙的.
self到底是谁?
self:谁调用的就是谁. 类型是根据调用方的对象来进行变换的
super:表示的是父类
特殊成员:
__init__() # 创建对象的时候初始化操作
__call__() # 对象()
__getitem__() # 对象[哈哈]
__setitem__() # 对象[哈哈] = 值
__new__() # 创建对象的时候.开辟内存
__enter__() # with 对象
__exit__() #结束with的时候
__hash__() # 可哈希 hash()
浙公网安备 33010602011771号