Python isinstance() メソッド

Python isinstance() 関数 オブジェクトが指定されたタイプの場合は True を返し、一致しない場合は False を返します。この記事では、Python で isinstance() メソッドがどのように機能するかを見ていきます。

  Input:   isinstance([1, 2, 3], list)   Output:   True   Explanation:   The first parameter passed is of list type.   Input:   isinstance(10, str)   Output:   False   Explanation:   The first parameter, 10 is an integer and not a string. 

Python isinstance() 関数の構文

isinstance() メソッド パイソン 次の構文があります。

構文:

isinstance(obj, クラス)

パラメーター :

  • オブジェクト: クラスの一部としてチェックする必要があるオブジェクトかどうか。
  • クラス : class/type/クラスまたはタイプのタプル。オブジェクトをチェックする必要があります。

戻り値 : 単一のクラスが渡された場合はオブジェクトが指定されたクラス/型に属し、クラス/型のタプルが渡された場合はいずれかのクラス/型に属している場合は True、それ以外の場合は False を返します。

タイプエラー: 記載されている有効なクラス タイプ以外の場合。

Python では、instance() 関数はどのように機能しますか?

Python では、instance() メソッドは比較演算子のように機能します。これは 2 つの引数を取り、1 つは Python オブジェクト、もう 1 つはクラス型です。オブジェクトを指定されたタイプのクラスまたはサブクラスと比較し、ブール値 (True または False) を返します。

Python3




numbers> => [> 1> ,> 2> ,> 3> ,> 4> ,> 2> ,> 5> ]> # Check if 'numbers' is an instance of a list> result> => isinstance> (numbers,> list> )> if> result:> > print> (> 'The variable 'numbers' is an instance of a list.'> )> else> :> > print> (> 'The variable 'numbers' is not an instance of a list.'> )>

出力

The variable 'numbers' is an instance of a list. 

Python の isinstance() メソッドの例

単一のクラス タイプまたは Python タプル のクラスをinstance()メソッドに渡します。タプルの場合、instance() メソッドはタプル内のすべての要素をチェックし、オブジェクトがタプルのいずれかの要素のインスタンスである場合は True を返し、それ以外の場合は False を返します。 Pythonのinstance()メソッドの例をいくつか見てみましょう。

Python は Int と List を使用したインスタンスです

この例では、isinstance() メソッドが Integer データ型および Python リスト 。整数とリストが Integer 型または String 型のインスタンスであるかどうかを確認します。

Python3




# initializing native types> test_int> => 5> test_list> => [> 1> ,> 2> ,> 3> ]> # testing with isinstance> print> (> 'Is test_int integer? : '> +> str> (> isinstance> (test_int,> int> )))> print> (> 'Is test_int string? : '> +> str> (> isinstance> (test_int,> str> )))> print> (> 'Is test_list integer? : '> +> str> (> isinstance> (test_list,> int> )))> print> (> 'Is test_list list? : '> +> str> (> isinstance> (test_list,> list> )))> # testing with tuple> print> (> 'Is test_int integer or list or string? : '> > +> str> (> isinstance> (test_int, (> int> ,> list> ,> str> ))))>

出力

Is test_int integer? : True Is test_int string? : False Is test_list integer? : False Is test_list list? : True Is test_int integer or list or string? : True 

オブジェクトでの isinstance() の使用のデモ

この例では、Python でオブジェクトのクラスをチェックします。つまり、オブジェクトがクラスのインスタンスであるか、その派生クラスであるかどうかを確認します。

Python3




# declaring classes> class> gfg1:> > a> => 10> # inherited class> class> gfg2(gfg1):> > string> => 'techcodeview.com'> # initializing objects> obj1> => gfg1()> obj2> => gfg2()> # checking instances> print> (> 'Is obj1 instance of gfg1? : '> +> str> (> isinstance> (obj1, gfg1)))> print> (> 'Is obj2 instance of gfg2? : '> +> str> (> isinstance> (obj2, gfg2)))> print> (> 'Is obj1 instance of gfg2? : '> +> str> (> isinstance> (obj1, gfg2)))> # check inheritance case> # return true> print> (> 'Is obj2 instance of gfg1? : '> +> str> (> isinstance> (obj2, gfg1)))>

出力

Is obj1 instance of gfg1? : True Is obj2 instance of gfg2? : True Is obj1 instance of gfg2? : False Is obj2 instance of gfg1? : True 

Python isinstance() と文字列

この例では、 isinstance() 関数を次のように使用します。 Python 文字列 Python でオブジェクトのクラスを確認します。

Python3




test_str> => 'techcodeview.com'> print> (> 'Is test_str string? : '> +> str> (> isinstance> (test_str,> str> )))>

出力

Is test_str string? : True 

Python isinstance() と辞書

Python isinstance() メソッドは、 辞書 オブジェクトを取得し、Python でオブジェクトのクラスを確認します。

Python3




test_dict> => {> 'apple'> :> 1> ,> 'Ball'> :> 2> }> print> (> 'Is test_str dictionary? : '> +> str> (> isinstance> (test_dict,> dict> )))>

出力

Is test_str dictionary? : True 

クラスメソッドを使用した Python インスタンス

この例では、isinstance() メソッドを使用して、指定された型のクラス関数によって返される値を確認し、Python でオブジェクトのクラスを確認します。

Python3




class> geeks:> > course> => 'DSA'> > > def> purchase(obj):> > return> obj.course> > > geeks.purchase> => classmethod> (geeks.purchase)> str> (> isinstance> (geeks.purchase(),> str> ))>

出力

True 

Python の isinstance() メソッドと type() メソッドの違い

次の表は、 isinstance() メソッドと タイプ() Python のメソッド。

インスタンス()

タイプ()

構文: isinstance(オブジェクト, クラス) 構文: type(オブジェクト)

オブジェクトが特定のクラスタイプであるかどうかをチェックします

オブジェクトのクラス型を返します。

オブジェクトがクラスとそのサブクラスに属しているかどうかを確認できます

継承には対応できない

type() に比べて高速です。 isinstance()より遅い
True または False を返します オブジェクトのタイプを返します
一度に複数のクラスを確認できます こんなことはできない
例: isinstance(10, (int, str)) 例: タイプ(10)