Python学习 - 一个类创建的对象可以是另一个类创建的对象的属性

本文通过一个警察与枪械的实例,展示了Python中对象封装的概念。警察类拥有枪械属性,而枪械类则负责装填子弹和发射。通过类的实例化和属性调用,实现了对象间的交互。

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

对象封装

一个类创建的对象可以是另一个类创建的对象的属性

需求

1. 士兵有一把AK47

2. 士兵可以开火

3. 枪能够发射子弹

4. 枪装填子弹

# coding:utf-8


class Gun:
    def __init__(self, model):

        self.model = model

        self.bullet_count = 0

    def add_bullet(self, count):

        self.bullet_count += count

    def shoot(self):

        if self.bullet_count <= 0:
            print '%s 没有子弹了' % self.model

            return

        self.bullet_count -= 1
        print '%s 发射子弹...' % self.model
        print '还剩子弹 %s 发' % self.bullet_count






class Police:
    def __init__(self,name):
        self.name = name

        self.gun = None

    def fire(self):
        if not self.gun:
            print '没有枪'
            return

        self.gun.add_bullet(30)

        self.gun.shoot()


ak47 = Gun('AK47')


jing_cha = Police('警察')
jing_cha.gun = ak47


jing_cha.fire()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值