1.什么是对象?什么是类?
对象:从现实世界中抽象出来的特征与技能的结合体
类:一系列对象特征与技能的结合体
2.绑定方法的有什么特点
把对象当做第一个参数传入绑定方法中,由不同的对象调用,就把不同的对象传给不同的绑定方法
3.基于面向对象设计一个对战游戏
class Person:
'''人类'''
def __init__(self,name,money,aggr,life_value):
self.name = name
self.money = money
self.aggr = aggr
self.life_value = life_value
def attack(self,dog):
if self.life_value > 0:
dog.life_value -= self.aggr
print(f'''
{self.name}攻击{dog.name}成功
{self.name}生命力{self.life_value}
{dog.name}生命力{dog.life_value}
''')
return True
class Dog:
'''狗类'''
def __init__(self,name,aggr,life_value):
self.name = name
self.aggr = aggr
self.life_value = life_value
def attack(self,person):
if self.life_value > 0:
person.life_value -= self.aggr
print(f'''
{self.name}攻击{person.name}成功
{self.name}生命力{self.life_value}
{person.name}生命力{person.life_value}
''')
return True
class Weapon:
'''武器类'''
def __init__(self,money,aggr,life_value):
self.money = money
self.aggr = aggr
self.life_value = life_value
def update(self,obj):
obj.money -= self.money
obj.life_value += self.life_value
obj.aggr += self.aggr
def pick(self,obj):
obj.life_value -= 500
print(f'{obj.name}的生命力还有{obj.life_value}')
person1 = Person('nick',10000,300,1000)
dog1 = Dog('hashiqi',500,5000)
weap1 = Weapon(5000,300,2500)
print(person1.__dict__)
if person1.money > weap1.money:
weap1.update(person1)
person1.weapon = weap1#将weapon放入person的个人属性里面,这样就可以调用person了
person1.attack(dog1)
person1.weapon.pick(dog1)