Joo*_*kka 5 python module python-module
我想获取Python对象所来自的模块.都
x.__module__
Run Code Online (Sandbox Code Playgroud)
和
x.__class__.__module__
Run Code Online (Sandbox Code Playgroud)
似乎工作.这些完全是多余的吗?是否有理由偏爱另一个?
Dun*_*can 12
如果x
是一类,然后x.__module__
和x.__class__.__module__
会给你不同的东西:
# (Python 3 sample; use 'class Example(object): pass' for Python 2)
>>> class Example: pass
>>> Example.__module__
'__main__'
>>> Example.__class__.__module__
'builtins'
Run Code Online (Sandbox Code Playgroud)
对于未__module__
直接定义的实例,将使用该类中的属性.
>>> Example().__module__
'__main__'
Run Code Online (Sandbox Code Playgroud)
我想你需要明确你真正想知道的模块.如果它是包含类定义的模块,那么最好是明确的,所以我会使用x.__class__.__module__
.实例通常不会记录模块的创建位置,因此x.__module__
可能会产生误导.