1.什么是对象?什么是类?
对象是特征与技能的结合体,类是一系列对象相同的特征与技能的结合体
2.绑定方法的有什么特点
1.由类来调用类内部的函数,该函数只是一个普通的函数,普通函数需要接受几个参数就得传入几个参数
2.由对象来调用称之为对象的绑定方法,不同的对象调用该绑定方法,则会讲不同的对象传入该绑定方法种
对象的绑定方法是由对象来调用的,特殊之处就是把对象当作第一个参数传入该方法种
3.基于面向对象设计一个对战游戏
class HanBing:
def __init__(self,name,attack=200,life=500,money=100):
self.name=name
self.attack=attack
self.life=life
self.money=money
def attacker(self,enemy):
enemy.life-=self.attack
print(f'''
{self.name}使用普通攻击,攻击了{enemy.name},造成{self.attack}点伤害''')
if enemy.life<=0:
return True,f'{enemy.name}死亡'
return False,f'{enemy.name}剩余血量{enemy.life}'
class GaiLun:
def __init__(self,name,attack=50,life=700,money=50):
self.name=name
self.attack=attack
self.life=life
self.money=money
def attacker(self,enemy):
enemy.life-=self.attack
print(f'''
{self.name}使用普通攻击,攻击了{enemy.name},造成{self.attack}点伤害''')
if enemy.life<=0:
return True,f'{enemy.name}死亡'
return False,f'{enemy.name}剩余血量{enemy.life}'
class WuQi:
def __init__(self,name,price,attack):
self.name=name
self.price=price
self.attack=attack
def goumai(self,enemy):
enemy.attack+=self.attack
enemy.money-=self.price
print(f'{enemy.name}购买了{self.name},攻击力飙升了{self.attack}')
h1=HanBing('寒冰')
g1=GaiLun('盖伦')
wuqi1=WuQi('金箍棒',20,20)
wuqi2=WuQi('九尺钉耙',19,18)
if h1.money>wuqi1.price:
wuqi1.goumai(h1)
if g1.money>wuqi2.price:
wuqi1.goumai(g1)
while True:
flag,msg=h1.attacker(g1)
if flag:
print(msg)
break
else:
print(msg)
flag,msg =g1.attacker(h1)
if flag:
print(msg)
break
else:
print(msg)