Python----类的封装

来源:互联网 发布:普通话发音软件安卓版 编辑:程序博客网 时间:2024/06/05 11:55

重点: 一个对象的属性可以是另外一个类型创建的对象

士兵的例子

class Gun:    def __init__(self, model):        # 1. 枪的型号        self.model = model        # 2. 子弹的数量        self.bullet_count = 0    def add_bullet(self, count):        self.bullet_count += count    def shoot(self):        # 1. 判断字弹的数量        if self.bullet_count <= 0:            print("[%s] 没有字弹了..." % self.model)            return        # 2. 发射子弹        self.bullet_count -= 1        # 3. 提示发射信息        print("[%s] 突突突...子弹有: [%d]" % (self.model, self.bullet_count))# 创建枪对象ak47 = Gun('ak47')ak47.add_bullet(30)ak47.shoot()ak47.shoot()class Soldier:    def __init__(self, name):        self.name = name        self.gun = None    # 私有    def fire(self):        # 1. 判断士兵是否有枪        if self.gun is None:   # 身份运算符(is) 可以替换(==)            print("[%s] 还没有枪..." % self.name)            return        # 2. 口号        print("冲啊... [%s]" % self.name)        # 3. 装子弹        self.gun.add_bullet(30)        # 4. 发射子弹        self.gun.shoot()# 创建一个士兵jack = Soldier("jack")jack.gun = ak47jack.fire()print(jack.gun)