Pythonでは変数の型を宣言する必要がありません。ただし型によって処理を分岐したい場合など、変数の型をチェック・判別する機会があります。
isinstance
isinstanceを使用して判別を行います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 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にタプル、リスト、ディクショナリ、自作クラスの追加を行っています。ループ内で型チェックを行い、型に応じた処理をしている形になります。