Pythonでは変数の型を宣言する必要がありません。ただし型によって処理を分岐したい場合など、変数の型をチェック・判別する機会があります。
isinstance
isinstanceを使用して判別を行います。
class TestClass:
def __init__(self, title):
self.title = title
tuple_instance = ('tuple', 'instance')
list_instance = ['list', 'instance']
dict_instance = {'1':'dict', '2':'instance'}
class_instance = TestClass('class')
python_list = []
python_list.append('python')
python_list.append('izm')
python_list.append(tuple_instance)
python_list.append(list_instance)
python_list.append(dict_instance)
python_list.append(class_instance)
for parent in python_list:
if isinstance(parent, tuple):
print('++++ tuple ++++')
for child in parent:
print(child)
elif isinstance(parent, list):
print('++++ list ++++')
for child in parent:
print(child)
elif isinstance(parent, dict):
print('++++ dict ++++')
for child in parent.keys():
print(parent[child])
elif isinstance(parent, TestClass):
print('++++ TestClass ++++')
print(parent.title)
else:
print('-- string --')
print(parent)
リストpython_listにタプル、リスト、ディクショナリ、自作クラスの追加を行っています。ループ内で型チェックを行い、型に応じた処理をしている形になります。
