Python——類的封裝
阿新 • • 發佈:2019-04-16
mode %s int 對象 一個 div 數量 pan mas
1 class Gun: 2 def __init__(self, model): 3 4 # 1. 槍的型號 5 self.model = model 6 7 # 2. 子彈的數量 8 self.bullet_count = 0 9 10 def add_bullet(self, count): 11 12 self.bullet_count += count 13 14 def shoot(self): 15 16 #1. 判斷字彈的數量 17 if self.bullet_count <= 0: 18 print("[%s] 沒有字彈了..." % self.model) 19 return 20 21 # 2. 發射子彈 22 self.bullet_count -= 1 23 24 # 3. 提示發射信息 25 print("[%s] 突突突...子彈有: [%d]" % (self.model, self.bullet_count)) 26 2728 # 創建槍對象 29 ak47 = Gun(‘ak47‘) 30 ak47.add_bullet(30) 31 ak47.shoot() 32 ak47.shoot() 33 34 35 class Soldier: 36 def __init__(self, name): 37 self.name = name 38 self.gun = None # 私有 39 40 def fire(self): 41 # 1. 判斷士兵是否有槍 42 if self.gun isNone: # 身份運算符(is) 可以替換(==) 43 print("[%s] 還沒有槍..." % self.name) 44 return 45 46 # 2. 口號 47 print("沖啊... [%s]" % self.name) 48 49 # 3. 裝子彈 50 self.gun.add_bullet(30) 51 52 # 4. 發射子彈 53 self.gun.shoot() 54 55 # 創建一個士兵 56 jack = Soldier("jack") 57 jack.gun = ak47 58 jack.fire() 59 #print(jack.gun)
輸出:
C:\Users\79453\Anaconda3\python.exe "D:/PyCharm 2018.1/pycorrector-master/tests/self_model.py" [ak47] 突突突...子彈有: [29] [ak47] 突突突...子彈有: [28] 沖啊... [jack] [ak47] 突突突...子彈有: [57] Process finished with exit code 0
Python——類的封裝