Python の type() と isinstance() と例
Python の type() とは?
Python には、入力として与えられた変数のクラス型を見つけるのに役立つ type() という組み込み関数があります。たとえば、入力が文字列の場合、出力は
type() コマンドを使用すると、引数を 1 つ渡すことができます。戻り値は、指定された引数のクラス タイプになります (例:type(object))。
type() に 3 つの引数、つまり type(name, bases, dict) を渡すこともできます。この場合、新しい型オブジェクトが返されます。
このチュートリアルでは、次のことを学びます:
- Python の type() とは?
- type() の構文:
- type() の例
- 例:クラス オブジェクトに type() を使用する。
- 例:type() での名前、ベース、辞書の使用
- Python の isinstance() とは?
- 構文 isinstance():
- isinstance() の例
- Python の type() と isinstance() の違い
type() の構文:
type() は、以下に示すように 2 つの方法で使用できます:
type(object) type(namr, bases, dict)
パラメータ :タイプ(オブジェクト)
- object:これは必須パラメーターです。これが type() に渡される唯一のパラメーターである場合は、パラメーターの型が返されます。
パラメータ :type(name, bases, dict)
- name:クラスの名前
- ベース:(オプション)。これはオプションのパラメータであり、基本クラスです
- 辞書:(オプション)。これはオプションのパラメーターであり、クラスの定義を持つ名前空間です。
戻り値:
オブジェクトが type() に渡される唯一のパラメーターである場合、オブジェクトの型が返されます。
type に渡されたパラメーターが型 (object, bases, 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() に渡される 3 つのパラメーター、つまり、name、bases、および dict は、クラス定義を構成するコンポーネントです。 name はクラス名を表し、bases は基本クラス、dict は基本クラス属性の辞書です。
この例では、type() で name、bases、dict の 3 つのパラメーターすべてを使用します。
例:
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}
3 つの引数すべてを type() に渡すと、新しいクラスを基本クラスの属性で初期化するのに役立ちます。
Python の isinstance() とは?
Python isinstance は、python 組み込み関数の一部です。 Python isinstance() は 2 つの引数を取り、最初の引数が 2 番目の引数として指定された classinfo のインスタンスである場合に true を返します。
構文 isinstance()
isinstance(object, classtype)
パラメータ
- オブジェクト:クラスタイプと比較するインスタンスを持つオブジェクト。タイプが一致する場合は true を返し、それ以外の場合は false を返します。
- クラス型:型またはクラスまたは型および/またはクラスのタプル。
戻り値:
オブジェクトがクラスタイプのインスタンスである場合は 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 型と比較します。つまり、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() チェックを設定
このコードは、set ({1,2,3,4,5}, with type set) をチェックします。指定された入力の型が set の場合は 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() リスト チェック
このコードは、タイプ list のリスト [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 チェック
コードは dict({“A”:”a”, “B”:”b”, “C”:”c”, “D”:”d”}, タイプ dict をチェックします。指定された入力は 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
Python の type() と isinstance() の違い
type() | 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() は真の値を返します。 |
まとめ:
- Python には、入力として与えられた変数のクラス型を見つけるのに役立つ type() という組み込み関数があります。たとえば、入力が文字列の場合、出力は
として取得され、リストの場合は などになります。 - type() の場合、単一の引数を渡すことができます。戻り値は、指定された引数のクラス型 (例:type(object)) になります。
- type() に 3 つの引数、つまり type(name, bases, dict) を渡すこともできます。この場合、新しい型オブジェクトが返されます。
- Python には、指定された型と値を比較する instance() という組み込み関数があります。指定された値と型が一致する場合は true を返し、それ以外の場合は false を返します。 isinstance() を使用すると、string、float、int、list、tuple、dict、set、class などをテストできます。
- isinstance() メソッドを使用すると、string、float、int、list、tuple、dict、set、class などをテストできます。
Python