type() と isinstance() の違いを理解する
Python では、type() と isinstance() は型チェックに使用される 2 つの関数です。ただし、これらには、使用シナリオに影響を与える明確な特性があります。
type()
type() による型チェックは、型を返します。オブジェクト、オブジェクトが属するクラス。返された型を既知の型と比較することで、オブジェクトがその特定の型であるかどうかを評価できます。
import types if type(a) is types.DictType: do_something()
このコードは、オブジェクト a が辞書型であるかどうかを確認します。存在する場合、do_something() 関数が実行されます。
isinstance() による型チェック
isinstance() は、オブジェクトが指定されたクラスまたはサブクラスのインスタンス。 type() とは異なり、継承階層が考慮されます。
if isinstance(a, dict): do_something()
ここで、isinstance() は、オブジェクト a が辞書であるか、または dict を継承するクラスのインスタンスであるかをチェックします。 。その場合、do_something() 関数が呼び出されます。
主な違い
class Cat(Animal): pass if isinstance(pet, Cat): # True do_something_catty()
type() は、それが Cat であるか別のサブクラスであるかに関係なく、ペットとして Animal を返します。
ベスト プラクティス
一般に、次の場合には isinstance() が推奨されます。
type()
以上がPython の型チェック: `type()` と `isinstance()` をいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。