ホームページ >バックエンド開発 >Python チュートリアル >Python の `type()` と `isinstance()`: いつどちらを使用するか?
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() よりも読みやすいため、ほとんどの型チェック シナリオでは isinstance() が推奨されます。 type() チェック。継承が問題にならない正確なチェックには、type() を使用できます。
以上がPython の `type()` と `isinstance()`: いつどちらを使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。