Pythonには、オブジェクトの型を確認するためのtype()関数とisinstance()関数があります。これらの関数は似ていますが、使用する状況と結果が異なります。

type()関数

type()関数は、指定したオブジェクトの型を返します。これを使用すると、オブジェクトがどのデータ型に属するかを調べることができます。

num = 123
print(type(num))  # <class 'int'>

str_var = "Hello, Python!"
print(type(str_var))  # <class 'str'>

list_var = [1, 2, 3, 4, 5]
print(type(list_var))  # <class 'list'>

isinstance()関数

isinstance()関数は、指定したオブジェクトが指定した型に属しているかどうかを判定します。これは特定の型が期待される場合に便利です。

num = 123
print(isinstance(num, int))  # True

str_var = "Hello, Python!"
print(isinstance(str_var, str))  # True

list_var = [1, 2, 3, 4, 5]
print(isinstance(list_var, list))  # True

type()isinstance()の違い

isinstance()は継承関係を考慮して型をチェックするのに対し、type()はオブジェクトの型そのものを返す関数なので、サブクラスまで考慮したい場合はisinstance()を使うのが良いです。

class Fruit:
    pass

class Apple(Fruit):
    pass

obj_fruit = Fruit()
obj_apple = Apple()

print(isinstance(obj_fruit, Apple))  # False
print(type(obj_fruit) == Apple)  # False

print(isinstance(obj_apple, Fruit))  # True
print(type(obj_apple) == Fruit)  # False

上記の例では、obj_appleの型が厳密にはAppleクラスであり、Fruitクラスではないと判断されていることがわかります。したがって、サブクラスまで考慮したいかどうかで使い分けると良いです。

以上が、Pythonのtype()関数とisinstance()関数の基本的な説明と使用法です。これらの関数はPythonプログラミングの基本的な部分であり、頻繁に使用されるため、必ず頭に入れておきましょう!.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です