Python:士兵与枪(类的使用)

# 士兵突击
# 士兵许有一把 AK47
# 士兵可以开火
# 枪能够发射 子弹
# 枪装填装填子弹 —— 增加子弹数量

class Soldier:
    """士兵"""

    def __init__(self, name):
        self.name = name
        self.gun = None

    def __str__(self):
        return "士兵%s,枪%s" % (self.name, self.gun)

    def fire(self):
        """开火"""
        if self.gun is None:
            print("没枪")
        else:
            self.gun.shoot()


class Gun:
    """枪"""

    def __init__(self, model):
        self.model = model
        self.bullet_count = 0  # 弹量

    def __str__(self):
        return "%s:弹量%d" % (self.model, self.bullet_count)

    def add_bullet(self, count):
        """填装子弹"""
        print("装弹%d发" % count)
        self.bullet_count += count

    def shoot(self):
        """射击"""
        if self.bullet_count > 0:
            self.bullet_count -= 1
            print("射击,剩余弹量%d" % self.bullet_count)
        else:
            print("没子弹了")


xu = Soldier("许")
xu.gun = Gun("AK47")
print(xu)
xu.fire()
xu.gun.add_bullet(50)
print(xu)
xu.fire()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值