day19
什么是对象?什么是类?
对象是特征与技能的结合体
类是一系列对象相同的特征与技能的结合体
绑定方法的有什么特点
由对象来调用称之为对象的绑定方法,不同的对象调用该绑定方法,则会将不同的对象传入该绑定方法中.对象的绑定方法,是由对象来调用的,特殊之处就是把对象当作第一个参数传入该方法中.
基于面向对象设计一个对战游戏
class Hero:
def __init__(self,name,aggressivity,life_value,money,armor):
self.name=name
self.aggressivity=aggressivity
self.life_value=life_value
self.money=money
self.armor=armor
def attack(self,enemy):
damage_value=self.aggressivity-enemy.armor
enemy.life_value-=damage_value
class BlackCleaver:
def __init__(self,price=475,aggrev=9,life_value=100):
self.price=price
self.aggrev=aggrev
self.life_value=life_value
def update(self,obj):
obj.money-=self.price
obj.aggressivity+=self.aggrev
obj.life_value+=self.life_value
def fire(self,obj):
obj.life_value-=1000
Riven=Hero('Riven',54,414,1001,3)
Garen=Hero('Garen',28,455,100,10)
BC=BlackCleaver()
# print(Riven.life_value,Riven.aggressivity,Riven.money)
if Riven.money>=BC.price:
BC.update(Riven)
Riven.BC=BC
# print(Riven.life_value,Riven.aggressivity,Riven.money)
while True:
if Garen.life_value <= 0:
print(f'{Garen.name} over')
break
# print(Garen.life_value)
Riven.attack(Garen)
# print(Garen.life_value)
Riven.BC.fire(Garen)
# print(Garen.life_value)