# 属性: 弹匣对象 # 方法: 射击 shoot # 人类: person # 属性: 枪对象 # 方法: 1.射击, 2.换子弹 # """ # 导入弹匣类 , 枪类 , 人类 from package.bulletbox import BulletBox from package.gun import Gun from package.person import Person # 创建一个弹匣 danxia = BulletBox(10) print(danxia) # 创建一个枪 xdq1887 = Gun(danxia) # 创建一个人 kangyukang = Person(xdq1887) if __name__ == "__main__": # 开枪发射 kangyukang.fire(5) # 上子弹 kangyukang.fill(3) # 开枪发射 kangyukang.fire(7) kangyukang.fire(10)
# 人类: person # 属性: 枪对象 init参数 # 方法: # 1.射击(减去子弹), 通过枪对象 调方法shoot # 2.上子弹(增加子弹) 通过枪对象--弹夹对象修改子弹总数属性 #导包 from package.bulletbox import Bulletbox from package.gun import Gun from package.person import Person #新建对象 bulletbox = Bulletbox(10) gun = Gun(bulletbox) #参数是弹夹对象 person = Person(gun) #参数是枪对象 if __name__ == "__main__": # gun.shoot(2) person.fire(3) person.fill(4) person.fire(2) person.fill(3) # 子弹的初始个数是10发 # 本次发射了3发子弹,剩余子弹总数是7发 # 本次新加了4发子弹,剩余子弹总数是11发
from package.bulletbox import BulletBox from package.gun import Gun from package.person import Person # 实例化 danxia = BulletBox(20) qiang = Gun(danxia) soider = Person(qiang) if __name__ == '__main__': soider.fire(10) soider.fire(20) soider.fill(10) soider.fire(20)
from package.bulletbox import BulletBox from package.gun import Gun from package.person import Person obj = BulletBox(10) ak47 = Gun(obj) libai = Person(ak47) # libai.fire(3) if __name__ == "__main__": #这里如果__main__ 前后有空格,下面的代码就不会执行 # if __name__ == " __main__ ": #这里如果__main__ 前后有空格,下面的代码就不会执行 libai.fire(3) libai.fill(2)
# 人类: person # 属性: 枪对象 init参数 # 方法: # 1.射击(减去子弹), 通过枪对象 调方法shoot # 2.上子弹(增加子弹) 通过枪对象--弹夹对象修改子弹总数属性 #导包 from package.bulletbox import Bulletbox from package.gun import Gun from package.person import Person #新建对象 bulletbox = Bulletbox(10) gun = Gun(bulletbox) person = Person(gun) if __name__ == "__main__": person.fire(3) person.fill(2) person.fill(2) person.fire(1) # 弹夹的子弹总数初始是10发 # 本次发射了3发子弹,剩余子弹总数是7发 # 本次新加了2发子弹,剩余子弹总数是9发 # 本次新加了2发子弹,剩余子弹总数是11发 # 本次发射了1发子弹,剩余子弹总数是10发
# 需求分析: """ 弹夹类: 属性: 子弹数量 方法没有, 参数也没有 枪类 : 属性: 弹夹对象 方法: 射击 参数: 射击的次数 人类 : 属性: 枪对象, 方法: 1 上子弹, (上多少子弹的参数,)连贯调用弹夹的属性子弹,进行添加 2 开火; 参数(开火的次数) 间接调用gun的shoot方法! """ from package.danjia import DanJia from package.gun import Gun from package.peoson import Peoson # 实例化出对象 d = DanJia() g = Gun(d) p = Peoson(g) if __name__ == '__main__': p.fire(5) p.add_zi(7) p.fire(20) # 大了10发子弹,还有一个打不出来
# 人类: person # 属性: 枪对象 init参数 # 方法: # 1.射击(减去子弹), 通过枪对象 调方法shoot # 2.上子弹(增加子弹) 通过枪对象--弹夹对象修改子弹总数属性 #导包 from package.bulletbox import Bulletbox from package.gun import Gun from package.person import Person # 新建对象 # 新建弹夹对象 bulletbox = Bulletbox(10) # 新建枪对象 gun = Gun(bulletbox) #参数是子弹对象 # gun.shoot(3) # 新建人对象 person = Person(gun) if __name__ == '__main__': # gun.shoot(3) person.fire(3) person.fill(4) # 加子弹,在人类,通过枪对象-弹夹对象,修改子弹总数属性 + # 开枪-减子弹 # 在人类,通过枪对象-枪方法-弹夹对象,修改子弹总数属性