Python: オブジェクトの型を調べる方法(type, isinstance)

2011年5月5日

Pythonで型を調べる方法といえばtypeですが、オブジェクトが★何なのか?★を調べる方法はたくさんあります。メソッドなのか?文字列なのか?クラス○●なのか?など。

型を調べる方法をマスターすることで汎用性の高い関数を実装することが可能となりますので、一度は理解しておきましょう。

まずは基本的な関数typeから。

 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
In [1]: hoge = "fugafuga"

 

In [2]: type(hoge)

Out[2]: <type 'str'>

 

In [3]: hoge = 123

 

In [4]: type(hoge)

Out[4]: <type 'int'>

 

In [5]: class Hoge(object):

   ...:     pass

 

In [6]: type(Hoge)

Out[6]: <type 'type'>

 

In [7]: obj = Hoge()

 

In [8]: type(obj)

Out[8]: <class '__main__.Hoge'>


上記のように、type関数を使うと、オブジェクトの型を出力することができます。

でも、これではプログラム上では使いにくいですね。型によって異なる動作をさせたい時は、isinstance()関数を使うことをオススメします。