python面向对象之三大特性
作者:互联网
三大特性
- 继承
- 多态
- 封装
类的组合用法
面向对象的用法
一个对象的属性值是另外一个类的对象,就是组合
# 定义了一个Dog类,有名字,攻击力,血量,种类,并且有咬的技能(方法) class Dog: def __init__(self,name,aggr,hp,kind): self.name = name self.aggr = aggr self.hp = hp self.kind = kind def bite(self,person): person.hp -= self.aggr # 定义了一个人的类,有名字,攻击力,血量,性别,金钱,有攻击技能,有获取武器的技能 class Person: def __init__(self,name,aggr,hp,sex): self.name = name self.aggr = aggr self.hp = hp self.sex = sex self.money = 0 def attack(self,dog): dog.hp -= self.aggr def get_weapon(self,weapon): if self.money > weapon.price: # 得到武器之前先判断人是否有钱买整个武器 self.money -= weapon.price # 得到武器后人的钱减去武器的价钱 self.weapon = weapon # 给人类加了一个weapon属性 self.aggr += weapon.aggr # 人的攻击力加上武器的攻击力 else: print('余额不足') # 如果钱不够,则报错 # 定义了一个武器类,有名称,攻击力,耐久度,价钱,还有大招hand18 class Weapon: def __init__(self,name,aggr,njd,price): self.name = name self.aggr = aggr self.njd = njd self.price = price def hand18(self,dog): if self.njd >0: # 使用大招有限度 dog.hp -= self.aggr *2 # 血量直接减去武器攻击力的两倍 self.njd -=1 # 耐久度减去1 w = Weapon('打狗棒',100,3,998) # 实例化一个打狗棒武器 alex = Person('alex',0.5,100,'male') # 实例化一个alex人对象 jin = Dog('金老板',100,500,'teddy') # 实例化一个狗对象 alex.money =1000 # 人的金钱增加,可以买武器 alex.get_weapon(w) # alex获得武器 alex.attack(jin) # 攻击狗对象 alex.weapon.hand18(jin) # 使用武器大招攻击 print(jin.hp)
标签:weapon,alex,name,python,之三,self,面向对象,aggr,hp 来源: https://www.cnblogs.com/wc89/p/10363817.html