python 面向对象例子(士兵开枪)

本文通过一个士兵使用枪支射击的例子,展示了Python中不同对象如何进行交互。定义了两个类:Gun 和 Soldier,前者用于模拟枪的功能,后者则代表持枪士兵的动作。通过此实例,读者可以了解对象间的调用与数据传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1个对象调用加载或调用另外1个对象例子。

gun.py

class Gun:
    def __init__(self, model):
        self.model = model
        self.bullet_count = 0

    def add_bullet(self, number):
        """添加子弹"""
        self.bullet_count = number

    def shot(self):
        self.bullet_count -= 1
        print("Bang!")

soldier.py

from gun import Gun


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

    def getGun(self,gun):
        self.gun = gun

    def add_bullet(self, numbers):
        self.gun.add_bullet(numbers)
        print("已填装50发子弹")

    def fire(self):
        if self.gun is None:
            print("士兵没有枪!")
            return
        if self.gun.bullet_count == 0:
            print("枪没有子弹!")
            return
        self.gun.shot()


if __name__ == '__main__':
    ak47 = Gun("AK47")
    Max = Soldier("Max")
    Max.getGun(ak47)
    Max.add_bullet(50)
    Max.fire()
    print(Max.gun.bullet_count)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值