类变量与实例变量

'''
定义一个英雄类,包含玩家数量,生命值,攻击力和玩家姓名,
同时包含一个方法攻击方法,调用攻击方法时显示如图信息,
构造函数中需要初始化数据,当玩家加入游戏后需要显示玩家姓名和数量
'''
class Hero:
    count = 0     #类变量
    def __init__(self):
            #实例变量
        self.hp = 0
        self.attack = 0
        self.name = None
        Hero.count += 1
    def show(self):
        print("新玩家%s加入游戏,当前人数%d"%(self.name,Hero.count))
    def attackFun(self,a):
        a.hp -= self.attack
        print("玩家%s受到玩家%s的%d点伤害剩余hp为%d"
              %(a.name,self.name,self.attack,a.hp))

h1 = Hero()
h1.name = "tom"
h1.attack = 5
h1.hp = 200
h1.show()

h2 = Hero()
h2.name = "lihua"
h2.attack = 10
h2.hp = 150
h2.show()

h1.attackFun(h2)
h1.attackFun(h2)
h1.attackFun(h2)
h2.attackFun(h1)
h2.attackFun(h1)
'''
类变量:
是可在类的所有实例之间共享的值(也就是说,它们不是单独分配给每个实例的)。用于跟踪存在着多少个类的实例。
实例变量:
实例化之后,每个实例单独拥有的变量。

简单的说,类变量(class variable)被该类的所有实例可以共享的变量;
如果某个实例修改了该变量,这种变化可以被其他实例看到。
实例变量(object variable, instance variable)属于实例私有;
对实例变量的操作不会影响到其他实例对象。

'''

猜你喜欢

转载自blog.csdn.net/feiYu12138/article/details/81738112