工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python type()とisinstance()の理解:実例付き解説

Python type()とisinstance()の理解:実例付き解説

Pythonには、入力として与えられた変数のクラス型を調べる組み込み関数type()があります。例えば、入力が文字列なら<class 'str'>、リストなら<class 'list'>が返されます。

type()コマンドでは単一の引数を渡せ、戻り値は引数のクラス型になります(例: type(object))。

また、type()に3つの引数、すなわちtype(name, bases, dict)を渡すことも可能で、この場合新しい型オブジェクトが返されます。

このチュートリアルで学べること:

type()の構文

type()は以下の2通りで使用可能:

type(object)
type(name, bases, dict)

パラメータ: type(object)

パラメータ: type(name, bases, dict)

戻り値

objectのみを渡した場合、そのオブジェクトの型を返す。

type(name, bases, dict)形式で渡した場合、新しい型オブジェクトを返す。

type()の例

文字列、数値、浮動小数点数、複素数、リスト、タプル、辞書、セットを用意し、それぞれに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("型:", type(str_list))
print("型:", type(age))
print("型:", type(pi))
print("型:", type(c_num))
print("型:", type(my_list))
print("型:", type(my_tuple))
print("型:", type(my_dict))
print("型:", type(my_set))

出力:

型: 
型: 
型: 
型: 
型: 
型: 
型: 
型: 

クラスオブジェクトでのtype()使用例

クラスから作成されたオブジェクトをtype()で調べると、クラス型とクラス名が返されます。クラスを作成し、そのオブジェクトの型を確認:

class test:
    s = 'testing'

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

出力:

<class '__main__.test'>

name、bases、dictを使ったtype()の例

type()はtype(name, bases, dict)構文でも呼べます。

type()に渡す3つのパラメータ(name、bases、dict)はクラス定義を構成する要素です。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つの引数をすべて渡すと、基底クラス属性を持つ新しいクラスを初期化できます。

Pythonにおけるisinstance()とは?

Pythonのisinstance()は組み込み関数の一部です。2つの引数を取り、第1引数が第2引数のclassinfoのインスタンスならTrueを返します。

isinstance()の構文

isinstance(object, classtype)

パラメータ

戻り値

オブジェクトがclasstypeのインスタンスならTrue、そうでなければFalse。

isinstance()の例

例: isinstance()整数チェック

整数値51を型intと比較。51の型がintと一致ならTrue:

age = isinstance(51, int)
print("ageは整数:", age)

出力:

ageは整数: True

例: isinstance()浮動小数点数チェック

pi = isinstance(3.14, float)
print("piは浮動小数点数:", pi)

出力:

piは浮動小数点数: True

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

message = isinstance("Hello World", str)
print("messageは文字列:", message)

出力:

messageは文字列: True

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

my_tuple = isinstance((1,2,3,4,5), tuple)
print("my_tupleはタプル:", my_tuple)

出力:

my_tupleはタプル: True

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

my_set = isinstance({1,2,3,4,5}, set)
print("my_setはセット:", my_set)

出力:

my_setはセット: True

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

my_list = isinstance([1,2,3,4,5], list)
print("my_listはリスト:", my_list)

出力:

my_listはリスト: True

例: isinstance()辞書チェック

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

出力:

my_dictは辞書: True

例: isinstance()クラステスト

クラスの型チェックをisinstance()で実施。クラスのオブジェクトをクラス名と比較。オブジェクトがクラスに属していればTrue:

class MyClass:
    _message = "Hello World"

_class = MyClass()
print("_classはMyClassのインスタンス:", isinstance(_class, MyClass))

出力:

_classはMyClassのインスタンス: True

Pythonにおけるtype()とisinstance()の違い

type()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()はサブクラスでもTrueを返す

まとめ

Python

  1. Raspberry Pi と Python でロボットを構築:完全ガイド
  2. C# の式、文、ブロック:実践例で徹底理解
  3. Python 型変換とキャスト: 包括的ガイド
  4. Pythonにおける数値、型変換、数学のマスター
  5. Python str.count()マスター:文字と部分文字列のカウント実例集
  6. Python format()文字列を明確な例でマスター
  7. Python String.find()メソッド完全ガイド:構文、例、代替手法
  8. Pythonラムダ関数をマスターする:実例とベストプラクティス
  9. Python round()関数を実例で徹底解説
  10. Python map()関数をマスター:構文、例、ベストプラクティス
  11. Python timeit():実行時間測定の実例付きガイド