标签:是你 image 静态属性 skill 依赖关系 sel 组合 lse ima
类空间的问题
何处可以添加对象属性
class A:
def __init__(self,name):
self.name = name
def func(self,sex):
self.sex = sex
obj = A("alex")
obj.age = 18 # 通过__init__方法添加
print(obj.__dict__)
obj1 = A("wusir")
obj.func("男") # 通过func方法添加
print(obj1.__dict__)
# 结果:
{'name': 'alex', 'age': 18}
{'name': 'wusir'}
总结:对象的属性不仅可以在__init__里面添加,还可以在类的其他方法或者类的外面添加
何处可以添加类的静态属性
class A:
def __init__(self,name):
self.name = name
def func(self,sex):
self.sex = sex
def func1(self):
A.bbb = 'ccc'
A.aaa = "alex" # 类的外部添加
print(A.__dict__)
A.func1(111) # 类的内部添加
print(A.__dict__)
对象如何找到类的属性
上面的顺序都是单向不可逆,类名不可能找到对象的属性。
类之间的关系
依赖关系
依赖关系:将一个类的对象或者类名传到另一个类的方法使用。此时, 我们说, ?象和冰箱之间就是依赖关系. 我?着你. 但是你不属于我.
class Elephant:
def __init__(self,name):
self.name = name
def open(self,obj):
print(f"{self.name}默念3,2,1,{obj.name}打开了")
def close(self):
print(f"{self.name}关上了{self.name}的门")
class Bx:
def __init__(self,name):
self.name = name
def open(self,obj1):
print(f"{self.name}的门被{obj1.name}打开了")
def close(self,obj1):
print(f"{self.name}的门被{obj1.name}关上了")
obj1 = Elephant("qq")
obj = Bx("B")
obj1.open(obj)
组合关系(2,3,4)
class Boy:
def __init__(self,name,girlfriend=None):
self.name = name
self.girlfriend = girlfriend
def have_a_dinner(self):
if self.girlfriend:
print(f"{self.name}请他的女朋友{self.girlfriend}一起烛光晚餐")
else:
print('单身狗,吃什么吃')
liye = Boy("李业")
liye.have_a_dinner()
liye = Boy("李业")
liye.girlfriend = "乔碧萝" # 在对象外部给对象赋值
liye.have_a_dinner()
class Boy:
def __init__(self,name,girlfriend = None):
self.name = name
self.girlfriend = girlfriend
def have_a_dinner(self):
if self.girlfriend:
print(f"{self.name}请他的{self.girlfriend.age}岁的,{self.girlfriend.body}的女朋友{self.girlfriend.name}一起烛光晚餐")
else:
print("单身狗吃什么吃")
class Girl:
def __init__(self,name,age,body):
self.name = name
self.age = age
self.body = body
def skill(self):
print(f'{self.name}会用萝莉音直播')
liye = Boy("李业")
qiao = Girl("乔碧萝",58,"小光跑")
liye.girlfriend = qiao # 对象静态属性为qiao对象
liye.have_a_dinner()
class GameRole:
def __init__(self,name,ad,hp):
self.name = name
self.ad = ad
self.hp = hp
def attack(self,p1):
p1.hp = p1.hp - self.ad
print(f"{self.name}攻击{p1.name},{p1.name}掉了{self.ad},还剩{p1.hp}血")
print(f"{p1.name}的血量为{p1.hp}")
def equipment_wea(self,wea):
self.weapon = wea
class Weapon:
def __init__(self,name,ad):
self.name =name
self.ad = ad
def weapon_attack(self,p1,p2):
print(f"self:{self}")
p2.hp =p2.hp -self.ad
print(f"{p1.name}利用{self.name}给了{p2.name}一下子,{p2.name}还剩{p2.hp}血")
gl = GameRole('盖伦',10,100)
zx = GameRole('菊花信',15,80)
sword = Weapon('宝剑',15)
Musket = Weapon('长缨枪',30)
gl.equipment_wea(sword) # 给人物装备武器对象。
gl.weapon.weapon_attack(gl,zx) # 组合:给一个对象封装一个属性,该属性是另一个类的对象
标签:是你 image 静态属性 skill 依赖关系 sel 组合 lse ima
原文地址:https://www.cnblogs.com/zhangdadayou/p/11415339.html