Python身份運算符is與is?not區(qū)別用法基礎教程
python中兩個身份運算符
在python中有兩個身份運算符,一個是is另外一個是is not。
作用:身份運算符用于比較兩個對象的內存地址是否一致——是否對同一個對象的引用。
在python中針對None比較時,建議使用is判斷。
一、Is 與 == 的區(qū)別
is 用于判斷兩個變量引用對象是否為同一個。
== 用于判斷引用變量的值是否相等。
代碼驗證:
a = [1, 2, 3] print(id(a)) # 變量a地址 b = [1, 2, 3, 4] print(id(b)) # 變量b地址 a.append(4) print(a) print(a is b) print(a == b)
執(zhí)行結果:
二、修改士兵突擊面向對象封裝案例
在之前的面向對象封裝士兵突擊案例中就用到了None這個關鍵字,當時是利用==來進行判斷的,但是按照編碼規(guī)范建議應該使用is來進行判斷,所以在這里稍微的修改一下代碼。
下面是之前的士兵突擊案例修改is之前的完整代碼:在修改之前代碼執(zhí)行并沒有錯誤。
class Gun(): def __init__(self, model): # 1. qiang的型號 self.model = model # 2. 子彈的數(shù)量,初始值為0 self.bullet_count = 0 def add_bullet(self, count): self.bullet_count += count def shoot(self): # 1. 判斷子彈數(shù)量 if self.bullet_count <= 0: print("[%s] 沒有子彈了" % self.model) return # 2. 發(fā)射子彈, -1 self.bullet_count -= 1 # 提示發(fā)射信息 print("[%s] 突突突。。。[%d]" % (self.model, self.bullet_count)) class Soldier(): def __init__(self, name): # 1. 姓名 self.name = name # 2. qiang = 新兵沒有槍 self.gun = None def fire(self): # 1. 判斷是否有槍 if self.gun == None: print("[%s]還沒有qiang" % self.name) return # 2. 高喊沖鋒口號 print("沖啊。。。 [%s]" % self.name) # 3. 裝填子彈 self.gun.add_bullet(50) # 4. 發(fā)射子彈射擊 self.gun.shoot() # 1. 創(chuàng)建qiang對象 ak47 = Gun("Ak47") # 2. 調用方法 # ak47.add_bullet(50) # ak47.shoot() # 3. 創(chuàng)建士兵對象-張小嘎 zhang = Soldier("張小嘎") # 用賦值語句,把ak47交給張小嘎 zhang.gun = ak47 zhang.fire() # print(zhang.gun)
在修改之前可以看出PyCharm給這行代碼標注了虛線,那么在修改之后虛線就沒了。
下面就對于這部分代碼進行修改:
修改之后和修改之前執(zhí)行的結果都是一樣的。如下圖:
備注:如果想詳細了解這個士兵突擊的面向對象化封裝案例,可以看我之前的一篇文章。
文章地址為:http://chabaoo.cn/python/2878257th.htm
以上就是Python身份運算符is與is not區(qū)別用法基礎教程的詳細內容,更多關于Python身份運算符的資料請關注腳本之家其它相關文章!
相關文章
使用fdopen實現(xiàn)對Python進程產(chǎn)生的文件進行權限最小化配置
用python進行文件的創(chuàng)建和讀寫操作時,我們很少關注所創(chuàng)建的文件的權限配置。本文就來聊聊如何使用fdopen實現(xiàn)對Python進程產(chǎn)生的文件進行權限最小化配置吧2023-03-03Python實現(xiàn)將一個大文件按段落分隔為多個小文件的簡單操作方法
這篇文章主要介紹了Python實現(xiàn)將一個大文件按段落分隔為多個小文件的簡單操作方法,涉及Python針對文件的讀取、遍歷、轉換、寫入等相關操作技巧,需要的朋友可以參考下2017-04-04python中如何使用xml.dom.minidom模塊讀取解析xml文件
xml.dom.minidom模塊應該是內置模塊不用下載安裝,本文給大家介紹python中如何使用xml.dom.minidom模塊讀取解析xml文件,感興趣的朋友一起看看吧2023-10-10