pythonオブジェクト向け:カプセル化---オブジェクトのプロパティは別のクラスで作成できるオブジェクトです.

5308 ワード

#
#
# 1、        AK47
# 2、        
# 3、         


class Gun:

    #
    #     :1、      ;2、     
    #     :1、     ;2、     
    def __init__(self, model):
        self.model = model
        self.bullet_count = 0

    def add_bullet(self, count):
        self.bullet_count += count

    def shoot(self):
        self.bullet_count -= 1


class Soldier:

    #
    #     :     ;“  ”    
    #
    def __init__(self, name):
        self.name = name
        self.gun = None     #         ,   None

    def check_gun(self):

        if self.gun.bullet_count <= 0:
            print(F"{self.gun.model}     ,     ")

            print("    ")

    def fire(self, shoot_count):
        if self.gun is None:
            print(F"   {self.name}     ,    !")
            return
        else:
            print(F"   {self.name}     {self.gun.model}!")
        self.gun.add_bullet(shoot_count)
        for i in range(shoot_count):
            self.gun.shoot()
            print(F"{self.name}   {self.gun.model}       
:{self.gun.bullet_count}
") xusanduo = Soldier(" ") xusanduo.fire(3) # , ! ak47 = Gun("AK47") # AK47! xusanduo.gun = ak47 xusanduo.fire(3) # AK47 , :XXX # :Soldier self.gun Gun “ak47”