このデータは何?変数の型をチェックする方法!!

takkun
どうも!たっくんです!
家のインターネットが遅すぎてツライです。。。

Pythonでは、変数の型を宣言する必要がありませんね、、、それ故、「トラブルが起きた時に、データの型がなんだろう?」「戻り値がバラバラで、型によって振り分けたい」なんて事があると思います!

そこで、Pythonで型の種類をチェックする方法をご紹介したいと思います!(`・ω・´)ゞ

type

組み込み関数にある「type」を使うと、データの型が何なのか見ることができます!

data = 1
print type(data)
# <type 'int'>

data = 3.14
print type(data)
# <type 'float'>

data = 'abcdefg'
print type(data)
# <type 'str'>

data = u'あいうえお'
print type(data)
# <type 'unicode'>

data = [0, 1, 2, 3]
print type(data)
# <type 'list'>

data = True
print type(data)
# <type 'bool'>

元からある型だけでなく、どのClassのインスタンスなのかも調べることができます。

class TypeTest(object):
	pass
    
data = TypeTest()
print type(data)
# <class '__main__.TypeTest'>
__main__」の部分は、モジュール名になります。

isinstance

組み込み関数にある「isinstance」を使うと、指定した型と一致する時はTrue、一致しない場合はFalseを取得することができます!

data = 1
if isinstance(data, int):
    print 'data is int.'
    
else:
    print 'data is not int.'
# data is int.

もちろん、自分で作成したClassも判別できます!

data = TypeTest()
if isinstance(data, TypeTest):
    print 'data is TypeTest'
else:
    print 'data is not TypeTest'
# data is TypeTest