python 类(练习) (人开枪射击子弹)

两个类

'''
作业:同桌买了一款华为mateX跟你炫耀.
分析:人   手机
人:
特征: 有钱,name,手机
行为:买,炫耀

手机:
特征:贵,型号,品牌,价格
行为:折叠,双面成像
'''
class Phone():
    def __init__(self,xinghao,pinpai,price):
        self.xinghao = xinghao
        self.pinpai = pinpai
        self.price = price

    def zhedie(self):
        print("%s可以180度折叠哦...."%self.xinghao)

    def chengxiang(self):
        print("%s可以双面成像哦...."%self.xinghao)


class Person:
    def __init__(self,name,money,phone):
        self.name = name
        self.money = money
        self.phone = phone

    def buy(self):
        print("买%s的%s手机...."%(self.phone.pinpai,self.phone.xinghao))

    def xuanyao(self):
        print("给你看看我的新手机...")
        self.phone.chengxiang()
        self.phone.zhedie()



if __name__ == "__main__":
    phone = Phone("MateX","华为",17000)
    per = Person("小王",10000000000,phone)
    per.buy()
    per.xuanyao()

三个类

'''
人开枪射击子弹
人:
特征: name,枪
行为:开枪,换弹夹

枪:
特征: 弹夹
行为: 射击,上膛

弹夹:
特征:子弹数量
行为:加弹,减弹
'''
class DanJia():
    def __init__(self,num=7):
        self.num = num

    def jiadan(self):
        self.num = 7


    def jiandan(self):
        if self.num>0:
            self.num -= 1
            print("砰....")
        else:
            print("没有子弹啦...")

class Gun():
    def __init__(self,xinghao,danjia):
        self.xinghao = xinghao
        self.danjia = danjia

    def sheji(self):
        self.danjia.jiandan()

    def shangtang(self):
        self.danjia.jiadan()

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

    def fire(self):
        print("%s在射击..."%self.name)
        self.gun.sheji()

    def change(self):
        print("%s在换弹夹..."%self.name)
        self.gun.shangtang()

if __name__ == "__main__":
    danjia = DanJia()
    gun = Gun("98K",danjia)
    per = Person("小明",gun)
    per.fire()
    per.fire()
    per.fire()
    per.fire()
    per.fire()
    per.fire()
    per.fire()
    per.fire()
    per.change()
    per.fire()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值