1. 程式人生 > >Python——類的封裝

Python——類的封裝

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 27
28 # 創建槍對象 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 is
None: # 身份運算符(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——類的封裝