我必須將專案從 Python 2.7 遷移到 3.7。
這行代碼曾經在 2.7 中作業
if isinstance(obj, None):
由于某種原因,它不再。如果我這樣修改:
if isinstance(obj, type(None)):
不過它會起作用。
但我的問題是,這個電話有什么區別:
isinstance(obj, None)
和
obj is None
為什么最初的開發人員決定使用 isinstance over is?(在 py 2.7 中)
謝謝。
uj5u.com熱心網友回復:
is運算子用于檢查兩個物件是否相同,而isinstance用于檢查第二個引數是否出現在第一個引數的繼承鏈中的任何位置。
obj is None
obj實際上是None。
isinstance(obj, type(None))
檢查obj是無型別物件。
但實際上只有一個 None 型別的物件。None 是 None 型別的唯一物件。因此,當您指定 None 型別時,您將其寫為type(None).
畢竟isinstance(None, type(None))是真的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/482252.html
標籤:Python python-3.x python-2.7 python-3.7 python-2.x
上一篇:未找到設定檔案參考
