2012-11-20 7 views
6

typeの変数部分を文字列として取得するにはどうすればよいですか?'type'を人間が読める文字列として返す

すなわち:ここでは、それぞれの場合には

>>> type('abc') 
<type 'str'> 
>>> type(1) 
<type 'int'> 
>>> type(_) 
<type 'type'> 

、私は単一引用符の内側にあるものとしますSTR、INT、タイプ文字列として。

私はrepr(type(1))に対して正規表現を使用しようとしましたが、それはうまく動作しますが、それは堅牢であるとは思われません。より良い方法がありますか?

答えて

6

あなたは__name__属性を使用しtype(1).__name__

+0

Doh!私はそれがあまり明らかではないと思った! –

3

typeオブジェクトの__name__属性を使用します。

In [13]: type('abc').__name__ 
Out[13]: 'str' 

In [14]: type(1).__name__ 
Out[14]: 'int' 
1

で名前を取得できます。

>>> type('abc').__name__ 
'str' 
2

どう... .__class__.__name__は?

>>> 'abc'.__class__.__name__ 
'str' 
>>> a = 123 
>>> a.__class__.__name__ 
'int' 
関連する問題