Python では、オブジェクトの型を確認するには、type() と isinstance() の 2 つの方法があります。どちらの関数も同じ目的を果たしますが、動作とアプローチが異なります。
type() 関数は、渡されたオブジェクトのクラスを返します。型が正確に等しいかどうかをチェックします。つまり、オブジェクトが指定された型のサブクラスである場合、type() 関数は親クラスを返しません。
isinstance() 関数は、オブジェクトが指定されたクラスまたはサブクラスのインスタンスであるかどうかを確認します。 type() とは異なり、継承されたクラスを含むクラス階層全体を再帰的にチェックします。
type() と isinstance() の主な違いは、そのアプローチにあります。クラスの継承に。 type() は正確な型の同一性のみをチェックしますが、isinstance() はクラス階層全体を考慮します。この区別は、継承とポリモーフィズムを扱うときに重要です。
一般に、継承に対応しているため、型をチェックするときは isinstance() を使用することをお勧めします。ただし、厳密な型の同一性が必要な特定の状況が存在する可能性があり、その場合は type() を使用する必要があります。
多くの場合、明示的な型チェックを避けることが望ましいです。型チェックではなく、オブジェクトが特定の処理を実行するために必要な属性またはメソッドを持っているかどうかをチェックする「ダック タイピング」に依存します。 task.
ダック タイピングは、型は異なるがインターフェイスが類似しているオブジェクトをシームレスに置き換えることができるため、Python ではより柔軟で慣用的です。
以上がPython の「type()」と「isinstance()」: いつどちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。