2012-11-20 23 views
6

Làm cách nào để nhận được phần biến của type dưới dạng chuỗi?Nhận trả lại 'loại' làm chuỗi có thể đọc được của con người

ví dụ:

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

Trong mỗi trường hợp ở đây, tôi muốn những gì là bên trong dấu ngoặc đơn: str, int, kiểu như là một chuỗi.

Tôi đã thử sử dụng regex chống lại repr(type(1)) và hoạt động, nhưng điều đó có vẻ không mạnh mẽ hoặc Pythonic. Có cách nào tốt hơn?

Trả lời

6

Bạn có thể lấy tên của type(1).__name__

+0

Doh! Tôi nghĩ rằng nó sẽ không được rõ ràng như vậy! –

3

sử dụng __name__ thuộc tính của đối tượng type:

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

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

Sử dụng __name__ thuộc tính:

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

Làm thế nào về ... .__class__.__name__?

>>> 'abc'.__class__.__name__ 
'str' 
>>> a = 123 
>>> a.__class__.__name__ 
'int' 
Các vấn đề liên quan