Python 中的 type() 和 isinstance() 函數執行類型檢查,但具有不同的特徵。
type() 函數計算物件的類型並傳回型別物件本身。它檢查物件的確切類型,而不考慮繼承。
相反,isinstance() 驗證物件是否為指定類型或其子類別的實例。它支援繼承,這意味著派生類別的物件將成功透過基底類別的 isinstance() 檢查。
考慮以下程式碼片段:
# Using type() import types if type(a) is types.DictType: do_something() if type(b) in types.StringTypes: do_something_else()
# Using isinstance() if isinstance(a, dict): do_something() if isinstance(b, str) or isinstance(b, unicode): do_something_else()
僅當物件是確切類型的實例時,type() 檢查才會成功,而如果物件是確切類型的實例,則isinstance() 才會成功指定類型(範例中的dict)或其任何子類別的實例。
通常,isinstance() 是大多數類型檢查場景的首選,因為它無縫支持繼承並且比 type() 更具可讀性檢查。對於不關心繼承的精確檢查,可以使用 type()。
以上是Python 中的 `type()` 與 `isinstance()`:何時使用哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!