class Role(object): ac = None; count = 0 def __init__(self,name, role, weapon, life_value): self.name = name; self.role = role; self.weapon = weapon; self.life_value = life_value; Role.count += 1 def buy_weapon(self,weapon): print ("%s is buying [%s]" %(self.name, weapon)) self.weapon = weapon p1 = Role("zhangsan", 'Police', "B10", 100) t1 = Role("lisi", 'Terrorist', "B11", 90) p1.buy_weapon("AK47") t1.buy_weapon("B51") print("p1:" , p1.weapon) print("t1:" , t1.weapon) p1.ac = "China" t1.ac = "USA" print(p1.ac) print(t1.ac) p1.count = 3; 在p1 中创建一个 count 变量 print(Role.count) 类中的count 变量 print(p1.count) print(t1.count) 实例中如果没有创建同名的类变量,则访问的是 类变量。
输出:
zhangsan is buying [AK47]
lisi is buying [B51]p1: AK47t1: B51ChinaUSA232class Role(object): 括号中的是继承的父类。
def __init__(self,name, role, weapon, life_value): 是构造方法。
p1 = Role("zhangsan", 'Police', "B10", 100) 实例化。 相当于 Role(p1,"zhangsan", 'Police', "B10", 100 )
p1.buy_weapon("AK47") 相当于 Role.buy_weapon(p1,"AK47") self 代表实例本身。