python基础-面向对象二

#人狗大战
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 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

代码精简了 方便增加人物 方便修改 人物更加规范 —— 人模子

jin = Dog('金老板',1000,100,'teddy')
alex = Person('狗剩儿',100,1,'不详')
 nezha = Person('哪吒',200,2,'不详')
print(jin)
jin['bite'](alex)
alex['attack'](jin)

Dog函数和Person函数 都是定义了一类事物
直到调用了函数,赋值了之后才真的有了一个实实在在的人或狗

面向对象编程
所谓模子 就是 类 抽象的 我能知道有什么属性 有什么技能 但不能知道属性具体的值
jin alex nezha 就是对象 有具体的值,属性和技能都是根据类规范的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值