ホームページ > バックエンド開発 > Python チュートリアル > Python type() と isinstance(): いつどちらを使用する必要がありますか?

Python type() と isinstance(): いつどちらを使用する必要がありますか?

Patricia Arquette
リリース: 2024-12-28 19:21:11
オリジナル
637 人が閲覧しました

Python type() vs. isinstance(): When Should I Use Which?

type() と isinstance() の違い

はじめに

Python オブジェクトを操作する場合、多くの場合、その型やオブジェクトかどうかを判断する必要があります。特定のクラスに属します。 Python には、このタスクによく使用される 2 つのメソッド、type() と isinstance() が用意されています。この記事では、これら 2 つの関数の違いを調査し、それぞれのアプリケーションについて説明します。

type() の確認

type() 関数は、オブジェクトの型を型オブジェクトとして返します。 Type オブジェクトは、その型のインスタンスではなく、値の型を表します。オブジェクトが特定の型であるかどうかを判断するには、オブジェクトの型が、目的の型を表す型オブジェクトと比較されます。

例:

a = 1
b = "Hello"

print(type(a))  # <class 'int'>
print(type(b))  # <class 'str'>
ログイン後にコピー

この場合、次のように入力します。 (a) は int クラスを表す型オブジェクトを返しますが、type(b) は str クラスを表す型オブジェクトを返します。

探索isinstance()

isinstance() 関数は、オブジェクトが特定のクラスのインスタンスであるか、そのクラスのサブクラスであるかを確認します。最初の引数としてオブジェクトを受け取り、2 番目の引数としてクラスまたはクラスのタプルを受け取ります。 isinstance() は、オブジェクトが指定されたクラスまたはサブクラスのインスタンスである場合は True を返し、それ以外の場合は False を返します。

次の例を考えてみましょう。

a = 1
b = [1, 2, 3]

print(isinstance(a, int))  # True
print(isinstance(b, list))  # True
ログイン後にコピー

この例では、 isinstance(a, int ) a は int クラスのインスタンスであるため、True を返します。同様に、 b はリスト クラスのインスタンスであるため、 isinstance(b, list) は True を返します。

主な違い

type() と isinstance() の主な違いは、type() であることです。 isinstance() はオブジェクト型の同一性をチェックし、継承関係をチェックします。 isinstance() は継承を考慮します。つまり、特定のクラスから継承するオブジェクトもそのクラスのインスタンスとみなされます。一方、type() は型の同一性を厳密にチェックし、継承は考慮しません。

どちらを使用するか

一般に、興味がある場合は isinstance() を使用することをお勧めします。オブジェクトが特定のクラスに属するか、そのサブクラスの 1 つであるかを判断する際に使用されます。これは、複雑なオブジェクト階層を扱う場合に特に便利です。

継承が考慮されない単純な型チェックの場合、より高速な代替手段として type() を使用できます。

以上がPython type() と isinstance(): いつどちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート