封裝python
一個對象的 屬性 能夠是 另一個類建立的對象編程
需求spa
code
shoot
方法需求對象
print
提示射擊,而且輸出子彈數量class Gun: def __init__(self, model): # 槍的型號 self.model = model # 子彈數量 self.bullet_count = 0 def add_bullet(self, count): self.bullet_count += count def shoot(self): # 判斷是否還有子彈 if self.bullet_count <= 0: print("沒有子彈了...") return # 發射一顆子彈 self.bullet_count -= 1 print("%s 發射子彈[%d]..." % (self.model, self.bullet_count)) # 建立槍對象 ak47 = Gun("ak47") ak47.add_bullet(50) ak47.shoot()
假設:每個新兵 都 沒有槍blog
定義沒有初始值的屬性內存
在定義屬性時,若是 不知道設置什麼初始值,能夠設置爲 None
開發
None
關鍵字 表示 什麼都沒有None
賦值給任何一個變量fire
方法需求string
class Soldier: def __init__(self, name): # 姓名 self.name = name # 槍,士兵初始沒有槍 None 關鍵字表示什麼都沒有 self.gun = None def fire(self): # 1. 判斷士兵是否有槍 if self.gun is None: print("[%s] 尚未槍..." % self.name) return # 2. 高喊口號 print("衝啊...[%s]" % self.name) # 3. 讓槍裝填子彈 self.gun.add_bullet(50) # 4. 讓槍發射子彈 self.gun.shoot()
小結it
__init__
內置方法None
身份運算符用於 比較 兩個對象的 內存地址 是否一致 —— 是不是對同一個對象的引用
Python
中針對 None
比較時,建議使用 is
判斷運算符 | 描述 | 實例 |
---|---|---|
is | is 是判斷兩個標識符是否是引用同一個對象 | x is y,相似 id(x) == id(y) |
is not | is not 是判斷兩個標識符是否是引用不一樣對象 | x is not y,相似 id(a) != id(b) |
is
用於判斷 兩個變量 引用對象是否爲同一個==
用於判斷 引用變量的值 是否相等
>>> a = [1, 2, 3] >>> b = [1, 2, 3] >>> b is a False >>> b == a True