查询顺序: 对象.属性 : 先从对象空间找,如果找不到,再从类空间找,再找不到,再从父类找.... 类名.属性 : 先从本类空间找,如果找不到,再从父类找....
对象与对象之间是互相独立的.
计算一个类 实例化多少对象.例
class Count: count = 0 def __init__(self): Count.count = self.count + 1 obj1 = Count() obj2 = Count() print(Count.count) count = 0
class Count: count = 0 def __init__(self): pass 通过类名可以更改我的类中的静态变量值Count.count = 6print(Count.__dict__) 但是通过对象 不能改变只能引用类中的静态变量 obj1 = Count()print(obj1.count)obj1.count = 6 组合: 给一个类的对象封装一个属性,这个属性是另一个类的对象.例
版本二:class GameRole: def __init__(self, name, ad, hp): self.name = name self.ad = ad self.hp = hp def attack(self,p): p.hp = p.hp - self.ad print(‘%s 攻击 %s,%s 掉了%s血,还剩%s血‘ %(self.name,p.name,p.name,self.ad,p.hp)) def armament_weapon(self,wea): self.wea = wea class Weapon: def __init__(self,name,ad): self.name = name self.ad = ad def fight(self,p1,p2): p2.hp = p2.hp - self.ad print(‘%s 用%s打了%s,%s 掉了%s血,还剩%s血‘\ % (p1.name,self.name,p2.name,p2.name,self.ad,p2.hp)) p1 = GameRole(‘大阳哥‘,20,500)p2 = GameRole(‘印度阿宁‘,50,200)axe = Weapon(‘三板斧‘,60)broadsword = Weapon(‘屠龙宝刀‘,100)# print(axe)p1.armament_weapon(axe) # 给大阳哥 装备了三板斧这个对象.# print(p1.wea)# print(p1.wea.name)# print(p1.wea.ad)p1.wea.fight(p1,p2)
原文地址:https://www.cnblogs.com/xdlzs/p/9360345.html
时间: 2024-11-06 16:40:20