class Boss():
# 類的公共屬性
level=1
# 類的初始化(構(gòu)造方法),在類實(shí)例化時(shí)自動(dòng)調(diào)用。
def __init__(self,name,hp,sp,atk):
self.name = name
self.hp = hp
self.sp = sp
self.atk = atk
# 創(chuàng)建類的方法,Boss被擊中時(shí)HP減少
def boss_hp_reduce(self,hero_atk):
# 被擊中時(shí)HP減少
self.hp -= hero_atk
print("Boss受到了%d點(diǎn)傷害" % hero_atk)
print("Boss現(xiàn)在的生命為%d" % self.hp)
# 攻擊到hero時(shí),heroHP減少
def boss_attack(self,hero_hp):
hero_hp -= self.atk
print("Hero受到了%d點(diǎn)傷害" % self.atk)
print("Hero現(xiàn)在的血量為%d" % hero_hp)
# 當(dāng)Boss魔力值充滿時(shí),釋放大招
def boss_sp_full(self):
print("Boss:哈哈,我放大招了")
print("Hero被擊飛!受到了傷害")
print("Hero陣亡了")
# 設(shè)定hero的屬性,同樣可以使用類封裝,但是我懶得弄了
hero_atk = 100
hero_hp = 1000
# 創(chuàng)建一個(gè)實(shí)例
boss = Boss("icedemon",,5,350)
# 調(diào)用實(shí)例的方法
boss.boss_hp_reduce(hero_atk)
boss.boss_attack(hero_hp)
boss.boss_sp_full()
輸出結(jié)果如下:
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了新北免費(fèi)建站歡迎大家使用!
>>> Boss受到了100點(diǎn)傷害
>>> Boss現(xiàn)在的生命為9900
>>> Hero受到了350點(diǎn)傷害
>>> Hero現(xiàn)在的血量為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發(fā)起攻擊,hero受到了%d點(diǎn)傷害!" % (self.name,self.atk))
# 繼承Enemy類
class Enemy2(Enemy):
pass
# 創(chuàng)建實(shí)例
enemy = Enemy("毛毛蟲",10,2)
enemy1 = Enemy2("小雞",100,10)
enemy.attack()
enemy1.attack()
父類:Enemy就是Enemy2的父類,也成為基類,超類
子類:Enemy2就是Enemy的子類,也成為派生類
如果未定義時(shí),等同于繼承object,在Python中,object是所有類的父類
運(yùn)行結(jié)果
>>> 毛毛蟲發(fā)起攻擊,hero受到了2點(diǎn)傷害!
>>> 小雞發(fā)起攻擊,hero受到了10點(diǎn)傷害!
class Enemy():
def __init__(self):
self.name = "蜜蜂"
self.level = 1
def summary(self):
print("%s,等級(jí)為%d" % (self.name,self.level))
# 一般來說子類做了初始化就不能繼承父類的屬性,但可以利用super函數(shù)
class Enemy2(Enemy):
def __init__(self):
self.name = "蜘蛛"
self.level = 5
super().__init__()
# 已經(jīng)初始化的子類不再繼承父類的屬性,已經(jīng)存在的方法也是
class Enemy3(Enemy):
def __init__(self):
self.name = "蝴蝶"
self.level = 2
def summary(self):
print("%s,等級(jí)為%d" % (self.name,self.level))
enemy = Enemy()
enemy2 = Enemy2()
enemy3 = Enemy3()
enemy.summary()
enemy2.summary()
enemy3.summary()
輸出結(jié)果:
>>> 蜜蜂,等級(jí)為1
>>> 蜜蜂,等級(jí)為1
>>> 蝴蝶,等級(jí)為2