在Python中打印結果type()
有時會顯示不在當前範圍內的類型名稱。例如,下面的代碼將顯示"<type 'frame'>"
如何在Python中獲得完整的類型名稱?
import inspect
a = inspect.currentframe()
print(type(a))
但沒有frame
類型在當前範圍內!如果我嘗試在交互式解釋器中使用它,我得到一個錯誤:
>>> frame
NameError: name 'frame' is not defined
因此,它是沒有辦法得到一個「完全合格」類型的名稱,比如「inspect.something.frame」這樣我就可以參考它在我的代碼?
UPDATE
不幸的是,__module__
是不是工作壓力太大:
>>> type(a).__module__
'__builtin__'
你是指'>>> frame'而不是'>>> type'? – mgilson 2013-03-01 19:13:06
@mgi是的,當然,謝謝! – grigoryvp 2013-03-01 19:13:55
我不認爲這是可行的。下面的答案中提到'__module__'屬性可能有助於獲得部分解決方案,但一般情況下是不可解的。 – entropy 2013-03-01 19:21:06