python公司大部分编码风格_Python编码风格篇:比较运算符-阿里云开发者社区
前幾天有看到一篇 Flask 開發團隊內部 Python 編碼風格指南 ,里面有一段關于比較的規范覺得很有意思:
任意類型之間的比較,使用 == 和 !=
與單例(singletons)進行比較時,使用 is 和 is not
永遠不要與 True 或 False 進行比較(例如,不要這樣寫:foo == False,而應該這樣寫:not foo)
自己在寫代碼的時候很少去關注變量的比較要如何實現,基本都是直接使用 == 。今天就借此機會聊聊 Python 中的比較運算符。
== 與 !=
== 和 != 是等值校驗。
這兩個運算符是我們最熟悉不過的比較運算符了。== 會根據魔術方法 eq 檢測左右兩側對象的值是否相等。
例如 x == y ,其實背后的操作是 x.__eq__(y)。
Python編碼風格篇:比較運算符
is
is 是身份校驗。它將檢測左右兩側是否為同一個對象。
同一個對象必須滿足:
值相同
內存地址相同
因此就不難理解為什么 is 和 is not 用于單例(singletons)比較了。
單例(singletons)是什么?
單例是一種設計模式,應用該模式的類只會生成一個實例。
單例模式保證了在程序的不同位置都可以且僅可以取到同一個對象實例:
如果實例不存在:會創建一個實例
如果實例已存在:會返回這個實例
not
not 是 Python 中的邏輯判斷詞,常用于布爾型 True 和 False。
not True -> False
not False -> True
邏輯判斷
a = False
not a 為 True
if not a:
pass
判斷元素是否存在
a = 100
b = [1, 2, 3]
元素 a 是否不在列表 b 中
if a not in b:
pass
總結
僅對值進行簡單比較時可以使用 ==/!= 操作符:
a = 1
b = 2
if a == b:
pass
else:
pass
is 用于比較單例,例如比較 None:
if a is None:
pass
if a is not None:
pass
如果涉及布爾值 True/False 的判斷,使用 not,不要直接與 True 或 False 比較:
a = False
b = True
正確的寫法
if not a:
pass
if b:
pass
錯誤的寫法
if a == False:
pass
not 還可以用于判斷元素是否在列表/字典中存在。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的python公司大部分编码风格_Python编码风格篇:比较运算符-阿里云开发者社区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rdp协议打开 windows_ubun
- 下一篇: 保定公积金管理中心官网(保定公积金管理中