首页 > 编程语言 > 详细

python面向对象之三大特性

时间:2019-02-12 10:09:30      阅读:181      评论:0      收藏:0      [点我收藏+]

三大特性

  • 继承
  • 多态
  • 封装

 

类的组合用法

面向对象的用法

一个对象的属性值是另外一个类的对象,就是组合

 

# 定义了一个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)

 

python面向对象之三大特性

原文:https://www.cnblogs.com/wc89/p/10363817.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!