class Boss():
# 类的公共属性
level=1
# 类的初始化(构造方法),在类实例化时自动调用。
def __init__(self,name,hp,sp,atk):
self.name = name
self.hp = hp
self.sp = sp
self.atk = atk
# 创建类的方法,Boss被击中时HP减少
def boss_hp_reduce(self,hero_atk):
# 被击中时HP减少
self.hp -= hero_atk
print("Boss受到了%d点伤害" % hero_atk)
print("Boss现在的生命为%d" % self.hp)
# 攻击到hero时,heroHP减少
def boss_attack(self,hero_hp):
hero_hp -= self.atk
print("Hero受到了%d点伤害" % self.atk)
print("Hero现在的血量为%d" % hero_hp)
# 当Boss魔力值充满时,释放大招
def boss_sp_full(self):
print("Boss:哈哈,我放大招了")
print("Hero被击飞!受到了伤害")
print("Hero阵亡了")
# 设定hero的属性,同样可以使用类封装,但是我懒得弄了
hero_atk = 100
hero_hp = 1000
# 创建一个实例
boss = Boss("icedemon",,5,350)
# 调用实例的方法
boss.boss_hp_reduce(hero_atk)
boss.boss_attack(hero_hp)
boss.boss_sp_full()
输出结果如下:
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了新北免费建站欢迎大家使用!
>>> Boss受到了100点伤害
>>> Boss现在的生命为9900
>>> Hero受到了350点伤害
>>> Hero现在的血量为650
>>> Boss:哈哈,我放大招了
>>> Hero被击飞!受到了伤害
>>> Hero阵亡了
class Enemy():
def __init__(self,name,hp,atk):
self.name = name
self.hp = hp
self.atk = atk
def attack(self):
print("%s发起攻击,hero受到了%d点伤害!" % (self.name,self.atk))
# 继承Enemy类
class Enemy2(Enemy):
pass
# 创建实例
enemy = Enemy("毛毛虫",10,2)
enemy1 = Enemy2("小鸡",100,10)
enemy.attack()
enemy1.attack()
父类:Enemy就是Enemy2的父类,也成为基类,超类
子类:Enemy2就是Enemy的子类,也成为派生类
如果未定义时,等同于继承object,在Python中,object是所有类的父类
运行结果
>>> 毛毛虫发起攻击,hero受到了2点伤害!
>>> 小鸡发起攻击,hero受到了10点伤害!
class Enemy():
def __init__(self):
self.name = "蜜蜂"
self.level = 1
def summary(self):
print("%s,等级为%d" % (self.name,self.level))
# 一般来说子类做了初始化就不能继承父类的属性,但可以利用super函数
class Enemy2(Enemy):
def __init__(self):
self.name = "蜘蛛"
self.level = 5
super().__init__()
# 已经初始化的子类不再继承父类的属性,已经存在的方法也是
class Enemy3(Enemy):
def __init__(self):
self.name = "蝴蝶"
self.level = 2
def summary(self):
print("%s,等级为%d" % (self.name,self.level))
enemy = Enemy()
enemy2 = Enemy2()
enemy3 = Enemy3()
enemy.summary()
enemy2.summary()
enemy3.summary()
输出结果:
>>> 蜜蜂,等级为1
>>> 蜜蜂,等级为1
>>> 蝴蝶,等级为2