给定一个如下所示的对象:
>>> type(fooInstance)
<class 'myPackage.mySubPackage.myModule.Foo'>
测试某个对象是否来自myPackage的最佳方法是什么?我能做到:
fooInstance.__module__.split('.')
并尝试以这种方式解析树,但这是正确的方法吗?
答案 0 :(得分:0)
您可以在sys.modules
中查找姓名,看看是否有__package__
属性:
import sys
package = getattr(sys.modules[fooInstance.__module__], '__package__'), '')
top_level = package.partition('.')[0]
只有在模块是软件包的一部分时,才应设置__package__
属性。