类
老师类 和 人类 老师是人 class老师类(人类) 用继承 另外,有相同属性也可判断要用继承
组合
一个对象的属性值是另外一个类的对象 一个类的属性 用另一个类的对象来描述
# 人狗大战
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
self.aggr += weapon.aggr
else:
print("余额不足,请先充值")
#装备
class Weapon:
def __init__(self,name,aggr,njd,price):
self.name = name
self.aggr = aggr #武力值
self.njd = njd #耐久度
self.price = price #价格
#技能:18掌
def hand18(self,person):
if self.njd > 0:
person.hp -= self.aggr * 2
self.njd -= 1
alex = Person('alex',0.5,100,'不详')
jin = Dog('金老板',100,500,'teddy')
w = Weapon('打狗棒',100,3,998) #创造武器w
# alex装备打狗棒
alex.money += 1000
alex.get_weapon(w) #alex获取武器w
print(alex.weapon)
#self.weapon = weapon即传入的w Alex的武器属性是武器的对象
# alex.weapon 是 Weapon类的对象
print(alex.aggr)
alex.attack(jin)
print(jin.hp)
alex.weapon.hand18(jin) #武器的大招,传入jin jin掉血
print(jin.