type()とisinstance()の Python 例を挙げて

⚡ スマートサマリー

Python type() と isinstance() は、オブジェクトのクラスをチェックするための組み込み関数です。type() は正確な型を返し、isinstance() はオブジェクトがクラスまたはクラスのタプルに属しているかどうかをテストします。どちらの関数も、使用例とともに以下に示します。

  • 🔍 タイプ(): オブジェクトの正確なクラス(str、int、listなど)を返します。
  • isinstance(): オブジェクトが指定されたクラスのインスタンスであるかどうかをチェックし、TrueまたはFalseを返します。
  • 🧩 3つの引数を持つ型(): type(name, bases, dict) は、新しいクラスオブジェクトを動的に作成します。
  • 🌳 サブクラス: isinstance() はサブクラスに対して True を返します。type() は正確なクラスのみをチェックします。
  • 🎯 使用例: オブジェクトタイプに基づいて、入力タイプの検証、変数のデバッグ、および分岐ロジックの分岐を行います。
  • 🤖 AIによる支援: CopilotのようなAIツールは、必要に応じてtype()とisinstance()のチェックを生成します。

type()とisinstance()の Python

type()とは何か Python?

Python type() という組み込み関数があり、入力として与えられた変数のクラス型を見つけるのに役立ちます。たとえば、入力が文字列の場合、出力は次のようになります。リストの場合は、など

type() コマンドを使用すると、単一の引数を渡すことができ、戻り値は指定された引数のクラス タイプになります (例: type(object))。

type() に XNUMX つの引数、つまり type(name, Bases, dict) を渡すこともできます。その場合、新しい型オブジェクトが返されます。

type() の構文

type() は、以下に示す XNUMX つの方法で使用できます。

 type(object)
type(namr, bases, dict)

技術パラメータ : タイプ(オブジェクト)

  • オブジェクト: これは必須パラメータです。 これが type() に渡されるパラメータのみの場合は、パラメータの型が返されます。

技術パラメータ : type(名前、塩基、辞書)

  • name:クラスの名前。
  • ベース:(オプション)。 これはオプションのパラメータであり、基本クラスです
  • 辞書:(オプション)。 これはオプションのパラメータであり、クラスの定義を持つ名前空間です。

戻り値

オブジェクトが type() に渡される唯一のパラメータである場合、オブジェクトのタイプが返されます。

type に渡されたパラメータが type(object, baseds, dict) の場合、新しいタイプのオブジェクトが返されます。

type()の例

この例では、文字列値、数値、浮動小数点値、複素数、リスト、タプル、辞書、セットがあります。 型の変数を使用して、それぞれの出力を確認します。

str_list = "Welcome to Guru99"
age = 50
pi = 3.14
c_num = 3j+10
my_list = ["A", "B", "C", "D"]
my_tuple = ("A", "B", "C", "D")
my_dict = {"A":"a", "B":"b", "C":"c", "D":"d"}
my_set = {'A', 'B', 'C', 'D'}

print("The type is : ",type(str_list))
print("The type is : ",type(age))
print("The type is : ",type(pi))
print("The type is : ",type(c_num))
print("The type is : ",type(my_list))
print("The type is : ",type(my_tuple))
print("The type is : ",type(my_dict))
print("The type is : ",type(my_set))

出力:

The type is :<class 'str'>
The type is :<class 'int'>
The type is :<class 'float'>
The type is :<class 'complex'>
The type is :<class 'list'>
The type is :<class 'tuple'>
The type is :<class 'dict'>
The type is :<class 'set'>

例: クラスオブジェクトに type() を使用する。

type() を使用してクラスから作成されたオブジェクトを確認すると、クラスの名前とともにクラスの種類が返されます。 この例では、クラスを作成し、クラス テストから作成されたオブジェクト タイプを確認します。

class test:
    s = 'testing'

t = test()
print(type(t))

出力:

<class '__main__.test'>

例: type() での名前、塩基、辞書の使用

この型は、type(name, Bases, dict) という構文を使用して呼び出すこともできます。

type()ie に渡される XNUMX つのパラメータ、name、bases、および dict は、クラス定義を構成するコンポーネントです。 name はクラス名を表し、bases は基本クラス、dict は基本クラスの属性の辞書です。

この例では、type() の XNUMX つのパラメータ、つまり name、bases、および dict をすべて使用します。

例:

class MyClass:
  x = 'Hello World'
  y = 50

t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50))
print(type(t1))
print(vars(t1))

出力:

<class 'type'>
{'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}

XNUMX つの引数をすべて type() に渡すと、基本クラスの属性を使用して新しいクラスを初期化するのに役立ちます。

isinstance()とは何か Python?

Python isinstanceは Pythonの組み込み関数. Python isinstance() は 2 つの引数を受け取り、最初の引数が 2 番目の引数として指定された classinfo のインスタンスである場合に true を返します。

構文 isinstance()

isinstance(object, classtype)

技術パラメータ

  • object: クラスタイプと比較するインスタンスを持つオブジェクト。タイプが一致する場合は true を返し、そうでない場合は false を返します。
  • クラス型: 型、クラス、または型やクラスのタプル。

戻り値

オブジェクトが classtype のインスタンスである場合は true を返し、そうでない場合は false を返します。

isinstance() の例

このセクションでは、isinstance() を学ぶためにさまざまな例を学習します。

例: isinstance() 整数チェック

以下のコードは、整数値 51 を int 型と比較します。51 の型が int と一致する場合は true を返し、それ以外の場合は false を返します。

age = isinstance(51,int)
print("age is an integer:", age)

出力:

age is an integer: True

例: isinstance() Float チェック

この例では、float 値を float 型と比較します。つまり、3.14 の値は float 型と比較されます。

pi = isinstance(3.14,float)
print("pi is a float:", pi)

出力:

pi is a float: True

例: isinstance() 文字列チェック

message = isinstance("Hello World",str)
print("message is a string:", message)

出力:

message is a string: True

例: isinstance() タプルチェック

このコードは、タプル型のタプル (1,2,3,4,5) をチェックします。 指定された入力がタプル型の場合は true を返し、そうでない場合は false を返します。

my_tuple = isinstance((1,2,3,4,5),tuple)
print("my_tuple is a tuple:", my_tuple)

出力:

my_tuple is a tuple: True

例: isinstance() セットチェック

このコードは、セット ({1,2,3,4,5}、タイプがセットされているかどうかをチェックします。指定された入力がセットタイプの場合は true を返し、そうでない場合は false を返します。

my_set = isinstance({1,2,3,4,5},set)
print("my_set is a set:", my_set)

出力:

my_set is a set: True

例: isinstance() リストチェック

このコードは、リスト型を使用してリスト [1,2,3,4,5] をチェックします。 指定された入力がリスト型の場合は true を返し、そうでない場合は false を返します。

my_list = isinstance([1,2,3,4,5],list)
print("my_list is a list:", my_list)

出力:

my_list is a list: True

例: isinstance() 辞書チェック

このコードは、dict({"A":"a", "B":"b", "C":"c", "D":"d"},with type dict) をチェックします。次の場合は true を返します。与えられた入力は dict 型であり、そうでない場合は false です。

my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict)
print("my_dict is a dict:", my_dict)

出力:

my_dict is a dict: True

例: クラスの isinstance() テスト

このコードは、 isinstance() を使用したクラスの型チェックを示しています。クラスのオブジェクトは、 isinstance() 内でクラスの名前と比較されます。オブジェクトがクラスに属している場合は true を返し、そうでない場合は false を返します。

class MyClass:
    _message = "Hello World"

_class = MyClass()

print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))

出力:

_class is a instance of MyClass() True

type()とisinstance()の違い Python

タイプ() isinstance()
Python 入力として与えられた変数のクラス型を見つけるのに役立つ type() という組み込み関数があります。 Python isinstance() という組み込み関数があり、値と指定された型を比較します。指定された値と型が一致する場合は true を返し、そうでない場合は false を返します。
戻り値は型オブジェクトです 戻り値はブール値、つまり true または false です。
class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(type(A()) == A)
print(type(B()) == A)

出力:

True
False

type の場合、サブクラス チェックは false を返します。

class A:
my_listA = [1,2,3]

class B(A):
my_listB = [1,2,3]

print(isinstance(A(), A))
print(isinstance(B(), A))

出力:

True
True

isinstance() は、サブクラスでチェックすると真の値を返します。

よくあるご質問

type() は、オブジェクトのクラスを返す組み込み関数です。引数が 1 つ渡された場合はオブジェクトの型が返され、3 つ (名前、基底クラス、辞書) 渡された場合は新しいクラスが作成されます。

isinstance(object, classtype) は、オブジェクトがクラスまたはクラスのタプルのインスタンスであるかどうかをチェックします。型が一致する場合は True を返し、そうでない場合は False を返します。

type() はオブジェクトの正確なクラスを返し、継承を無視しますが、isinstance() はサブクラスに対しても True を返します。クラス階層を考慮した柔軟な型チェックには、isinstance() を使用してください。

はい。3つの引数を持つ type(name, bases, dict) を呼び出すと、新しいクラスオブジェクトが動的に返されます。name はクラス名、bases は親クラスのタプル、dict は属性を保持します。

はい。isinstance() は、オブジェクトがクラスまたはそのサブクラスのインスタンスである場合に True を返します。そのため、継承された型をチェックする際には type() よりも安全です。

GitHub CopilotのようなAIアシスタントは、type()とisinstance()のチェックを自動補完し、検証ガードを生成し、記述時に特定のオブジェクトに対して適切なアプローチを提案します。 Python.

はい。AIを活用したツールを使えば、isinstance() ガードの挿入を自動化したり、チェックされていない入力を検出したり、脆弱な type() 比較をより安全な isinstance() チェックにリファクタリングしたりすることが、コードベース全体で可能です。

type() は、値に対応するクラスオブジェクトを返します。リストの場合は list、辞書の場合は dict を返します。出力すると、class list や class dict のような形式が表示されます。