Python身份運算符is與is?not區(qū)別用法基礎(chǔ)教程
python中兩個身份運算符
在python中有兩個身份運算符,一個是is另外一個是is not。
作用:身份運算符用于比較兩個對象的內(nèi)存地址是否一致——是否對同一個對象的引用。
在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í)行結(jié)果:

二、修改士兵突擊面向?qū)ο蠓庋b案例
在之前的面向?qū)ο蠓庋b士兵突擊案例中就用到了None這個關(guān)鍵字,當(dāng)時是利用==來進行判斷的,但是按照編碼規(guī)范建議應(yīng)該使用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. 調(diào)用方法
# ak47.add_bullet(50)
# ak47.shoot()
# 3. 創(chuàng)建士兵對象-張小嘎
zhang = Soldier("張小嘎")
# 用賦值語句,把ak47交給張小嘎
zhang.gun = ak47
zhang.fire()
# print(zhang.gun)在修改之前可以看出PyCharm給這行代碼標(biāo)注了虛線,那么在修改之后虛線就沒了。
下面就對于這部分代碼進行修改:


修改之后和修改之前執(zhí)行的結(jié)果都是一樣的。如下圖:

備注:如果想詳細了解這個士兵突擊的面向?qū)ο蠡庋b案例,可以看我之前的一篇文章。
文章地址為:http://www.fzitv.net/python/2878257th.htm
以上就是Python身份運算符is與is not區(qū)別用法基礎(chǔ)教程的詳細內(nèi)容,更多關(guān)于Python身份運算符的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python代碼實現(xiàn)輕松編寫一個QQ AI機器人
這篇文章主要介紹了如何結(jié)合QQ 官方 Python SDK + 任意大模型 API,用30 行代碼搞定一個能在 QQ 群里聊天的 AI 機器人,不用裝任何桌面客戶端,一個 Python 腳本跑在服務(wù)器上就行,感興趣的小伙伴可以了解下2026-03-03
python3.5 email實現(xiàn)發(fā)送郵件功能
這篇文章主要為大家詳細介紹了python3.5 email實現(xiàn)發(fā)送郵件功能,包含txt、圖片、HTML、附件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05
linux環(huán)境部署清華大學(xué)大模型最新版 chatglm2-6b 圖文教程
這篇文章主要介紹了linux環(huán)境部署清華大學(xué)大模型最新版 chatglm2-6b ,結(jié)合實例形式詳細分析了Linux環(huán)境下chatglm2-6b部署相關(guān)操作步驟與注意事項,需要的朋友可以參考下2023-07-07
利用Python開發(fā)一個功能全面的Markdown編輯工具
這篇文章主要為大家詳細介紹了如何利用Python開發(fā)一個功能全面的Markdown編輯工具,支持Markdown內(nèi)容的編輯,HTML預(yù)覽等功能,需要的可以參考下2025-03-03
Python中實現(xiàn)字符串類型與字典類型相互轉(zhuǎn)換的方法
這篇文章主要介紹了Python中實現(xiàn)字符串類型與字典類型相互轉(zhuǎn)換的方法,非常實用,需要的朋友可以參考下2014-08-08

