Python9-面对对象1-day22

def Person(name,blood,aggr,sex):

    person = {
                'name' : name,
                'blood':blood,
                'aggr': aggr,
                'sex' : sex,
    }
    def attack(dog):
        dog['blood'] -= person['aggr']
        print('%s被打了,掉了%s的血' % (dog['name'],person['aggr']))
    person['attack'] = attack
    return person

#是精简了,方便增加人物,方便修改, 人物更加规范
def Dog(name,blood,aggr,kind):
    dog = {
                'name' : name,
                'blood':blood,
                'aggr': aggr,
                'kind' : kind,
    }
    def bite(person):
        person['blood'] -= dog['aggr']
        print('%s被咬了,掉了%s的血' % (person['name'],dog['aggr']))
    dog['bite'] = bite
    return dog
#攻击技能 打
# def attack(person,dog):
#     dog['blood'] -= person['aggr']
#     print('%s被打了,掉了%s的血' % (dog['name'],person['aggr']))

#咬人 咬
# def bite(dog,person):
#     person['blood'] -=dog['aggr']
#     print('%s被咬了,掉了%s的血' % (person['name'],dog['aggr']))


tim = Person('tim',300,1,'None')
nezha = Person('哪吒',300,3, '不详')
jin = Dog('金喇叭',1000,200,'teddy')
print(jin)
jin['bite'](nezha)
tim['attack'](jin)
Dog函数和Person函数,都是定义了一类事务
直到调用了函数,赋值后才真的有了一个实实在在的人或狗
面向对象编程
所谓模子就是类,类是抽象的,我能知道有什么属性,有什么技能,但不能知道属性具体的值
jin tim nezha 就是对象,有具体的值,属性和技能都是根据类规范的

猜你喜欢

转载自www.cnblogs.com/zhangtengccie/p/10349696.html
今日推荐