面向对象work
1.什么是对象?什么是类?
对象:含有属性(特征)和技能的结合
类:一系列对象相同的属性(特征)和技能的结合体
2.绑定方法的有什么特点
特点:
- 不同的对象调用该绑定的方法,则会将不同的对象传入该绑定方法中
- 把对象当中第一个参数传入该方法中,也就是self本身
3.基于面向对象设计一个对战游戏
class Boss:
def __init__(self,name,life_value=1000,aggressivity=60,armor=40):
self.name=name
self.life_value=life_value
self.aggressivity=aggressivity
self.armor=armor
def attack(self,enemy):
hurt=self.aggressivity-enemy.arrmor
enemy.life_value-=hurt
class Hero:
def __init__(self, name, life_value=1300, aggressivity=50, armor=30):
self.name = name
self.life_value = life_value
self.aggressivity = aggressivity
self.armor = armor
def attack(self, enemy):
hurt = self.aggressivity - enemy.arrmor
enemy.life_value -= hurt
hero=Hero('jj')
boss=Boss('monkey')
print(f'{hero.name}生命值:{hero.life_value},攻击力{hero.aggressivity},防御值{hero.armor}')
print(f'{boss.name}生命值:{boss.life_value},攻击力{boss.aggressivity},防御值{boss.armor}')
while True:
if boss.life_value<=0:
print('成功击杀boss')
break
boss.hurt=boss.aggressivity-hero.armor
hero.life_value-=boss.aggressivity
print(f'{boss.name}攻击了{hero.name}造成了{boss.hurt},\n{boss.name}剩余血量{boss.life_value}')
if hero.life_value<=0:
print('被boss击杀,死亡')
break
hero.hurt=hero.aggressivity-boss.armor
boss.life_value-=hero.hurt
print(f'{hero.name}攻击了{boss.name}造成了{hero.hurt}\n{hero.name}剩余血量{hero.life_value}')