面向对象

面向对象的一个小例子

class  Person:        #人类
    role = '中国人'      #静态属性,所有对象可以调用
    def __init__(self,name,life_value,aggr,leval,money):     #self相当于一个大的字典
        self.name = name    #名字
        self.life_value = life_value     #血量
        self.aggr= aggr     #攻击
        self.leval= leval    #等级
        self.money=money     #金钱

    def attack(self,enemy):      #动态属性     ----方法   可变
        enemy.life_value =enemy.life_value -self.aggr      #血量=血量-攻击

class Dog:       #狗类
    def __init__(self,name,breed,aggr,life_value):
        self.name = name     #昵称
        self.breed = breed    #种类
        self.aggr = aggr     #攻击
        self.life_value= life_value    #血量

    def bite(self,person):      #狗的攻击
        person.life_value = person.life_value-self.aggr        #血量= 总血量-狗的攻击


class Weapon:    #武器类
    def __init__(self,name,aggr,life_value,price,attack_force):
        self.price = price      #武器价格
        self.name = name      #武器名
        self.aggr = aggr     #伤害加成
        self.life_value = life_value     #生命加成
        self.attack_force = attack_force    #攻击力

    def updata(self,person):    #带装备,人
        person.money = person.money - self.price      #总金钱= 金钱-装备价格
        person.aggr = self.aggr+person.aggr     #人的攻击力= 装备的攻击力+人的攻击力
        person.life_value = person.life_value+self.life_value     #人的总血量=人的血量+武器血量加成

    def kill(self,obj):   #装备:大招
        obj.life_value = obj.life_value-1000

打狗棒 = Weapon('sword_soul',50,250,199,700)
if egon.money>打狗棒.price:
    打狗棒.updata(egon)
    egon.weapon = 打狗棒

调用========================

  

posted @ 2017-08-10 15:57  前方、有光  阅读(554)  评论(0编辑  收藏  举报