2012-11-20 13 views
6

Come si ottiene la stringa variabile type come stringa?Ottieni il ritorno di "tipo" come stringa leggibile dall'uomo

cioè:

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

In ogni caso qui, voglio ciò che è dentro singoli apici: str, int, tipo come una stringa.

Ho provato a utilizzare un regex contro repr(type(1)) e ciò funziona, ma ciò non sembra robusto o Pythonic. C'è un modo migliore?

risposta

6

è possibile ottenere il nome con type(1).__name__

+0

Doh! Pensavo che non sarebbe stato così ovvio! –

3

utilizzare l'attributo di type oggetto __name__:

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

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

Utilizzare l'attributo __name__:

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

Come su ... .__class__.__name__?

>>> 'abc'.__class__.__name__ 
'str' 
>>> a = 123 
>>> a.__class__.__name__ 
'int' 
Problemi correlati