logo

Pythonのtype()関数

type() 関数は主にデバッグ目的で使用されます。 type() 関数には、1 つの引数と 3 つの引数という 2 つの異なるタイプの引数を渡すことができます。単一の引数 type(obj) が渡された場合、指定されたオブジェクトの型を返します。 3 つの引数の型 (object、bases、dict) が渡されると、新しい型のオブジェクトが返されます。

Python type() 関数の構文

構文: type(オブジェクト、ベース、辞書)



パラメーター :

  • 物体: 必須。パラメータが 1 つだけ指定されている場合、type() 関数はこのオブジェクトのタイプを返します。
  • ベース: 現在のクラスの派生元となるクラスのタプル。後は __bases__ 属性に対応します。
  • 辞書: クラスの名前空間を保持する辞書。後は __dict__ 属性に対応します。

戻る: 新しい型クラス、または基本的にメタクラスを返します。

type() 関数の仕組み Pythonで?

与えられた例では、変数 x の型を出力しています。 Python でオブジェクトの型を決定します。



Python3




クイックソートアルゴリズム



x>=> 10> print>(>type>(x))>

>

>

出力

>

Python の type() 関数の例

type() 関数を使用すると、Python でオブジェクトの型を決定できます。以下は、type() 関数に関連するその他の例です。

Python オブジェクトの型を調べる

ここでは、type() 関数を使用してオブジェクトの型をチェックしています。 パイソン

Python3




a>=> (>'Geeks'>,>'for'>,>'Geeks'>)> b>=> [>'Geeks'>,>'for'>,>'Geeks'>]> c>=> {>'Geeks'>:>1>,>'for'>:>2>,>'Geeks'>:>3>}> d>=> 'Hello World'> e>=> 10.23> f>=> 11.22> print>(>type>(a))> print>(>type>(b))> print>(>type>(c))> print>(>type>(d))> print>(>type>(e))> print>(>type>(f))>

>

>

出力

Javaのカスタマイズされた例外
>

オブジェクトが Python のタイプであるかどうかを確認する

この例では、条件を使用してオブジェクトをテストし、ブール値を出力します。

Python3




print>(>type>([])>is> list>)> print>(>type>([])>is> not> list>)> print>(>type>(())>is> tuple>)> print>(>type>({})>is> dict>)> print>(>type>({})>is> not> list>)>

>

マイフリックス

>

出力

True False True True True>

条件文での type() の使用

この例では、type() 関数を使用して、条件付き if-else ステートメントで Python のオブジェクトの型を決定しています。

Python3




# Example variables> my_tuple>=> (>10>,>'Hello'>,>45>,>'Hi'>)> my_dict>=> {>1>:>'One'>,>2>:>'Two'>,>3>:>'Three'>}> # Check if the variables have the same object type> if> type>(my_tuple)>is> not> type>(my_dict):> >print>(>'The variables have different object types.'>)> else>:> >print>(>'The variables have the same object type.'>)>

>

>

出力

The variables have different object types.>

3 つのパラメータを持つ Python type()

この例では、 クラス 基本クラスと基本クラスから派生したクラスはありません。 type() 関数を使用すると、実行時にクラスとその属性をプログラムで定義できます。

Python3




# New class(has no base) class with the> # dynamic class initialization of type()> new>=> type>(>'New'>, (>object>, ),> >dict>(var1>=>'techcodeview.com'>, b>=>2009>))> # Print type() which returns class 'type'> print>(>type>(new))> print>(>vars>(new))> # Base class, incorporated> # in our new class> class> test:> >a>=> 'Geeksforgeeks'> >b>=> 2009> # Dynamically initialize Newer class> # It will derive from the base class test> newer>=> type>(>'Newer'>, (test, ),> >dict>(a>=>'Geeks'>, b>=>2018>))> print>(>type>(newer))> print>(>vars>(newer))>

>

Javaでこんにちは世界

>

出力

{‘var1’: ‘techcodeview.com’, ‘b’: 2009, ‘__module__’: ‘__main__’, ‘__dict__’: , ‘__weakref__’: , ‘__doc__’: なし}

{‘a’: ‘Geeks’, ‘b’: 2018, ‘__module__’: ‘__main__’, ‘__doc__’: なし}

Python type() 関数の応用

  • タイプ( ) 関数は基本的にデバッグ目的で使用されます。 Web クローラーから抽出されたテキストで .upper()、. lower()、.split() などの他の文字列関数を使用する場合、文字列関数をサポートしていない異なる型である可能性があるため、機能しない可能性があります。その結果、デバッグが非常に困難なエラーがスローされ続けます [GeneratorType には lower() 属性がないため、エラーを考慮してください]。
  • タイプ() この時点で関数を使用すると、抽出されたテキストの種類を判断し、文字列関数やその他の操作を使用する前に、それを他の形式の文字列に変更できます。
  • タイプ() 3 つの引数を指定した を使用すると、クラスまたは属性を持つ既存のクラスを動的に初期化できます。データベーステーブルを登録するためにも使用されます。 SQL
  • 単体テストフレームワークでは、type()>関数またはメソッドの出力を検証するために使用でき、期待されるデータ型が返されることを確認できます。