在Python中,有时候打印type()
结果会显示当前作用域之外的类型名。比如,下面的代码会显示"<type 'frame'>"
import inspect
a = inspect.currentframe()
print( type( a ) )
但是当前范围内没有frame
类型!如果我尝试在交互式解释器中使用它,就会出现错误:
>>> frame
NameError: name 'frame' is not defined
有没有办法获取类似于“inspect.something.frame”这样的“完全限定”类型名称,以便我可以在我的代码中引用它?
更新
不幸的是,__module__
也无法工作:
>>> type( a ).__module__
'__builtin__'
>>> frame
而不是>>> type
? - mgilson__module__
属性可能有助于获得部分解决方案,但一般情况下是无法解决的。 - entropy"<type 'frame'>"
转换为类型frame
(并且没有访问到你获取该字符串的类型对象),则无法编写? - abarnerttype(a).__module__
。 - ecatmur