在我自己创建的 Python 包目录中,我有一个__init__.py
文件说:
from _foo import *
在同一目录中有一个 _foomodule.so 由上面加载。共享库是用 C++ 实现的(使用 Boost Python)。这让我说:
import foo
print foo.MyCppClass
这可行,但有一个怪癖:Python 通过完整的包路径知道该类,这使得它可以打印:
foo._foo.MyCppClass
因此,虽然MyCppClass
作为别名存在foo
,foo.MyCppClass
但不是它的规范名称。除了有点难看之外,这也help()
有点蹩脚:help(foo)
会说 foo 包含一个 module _foo
,只有当你说help(foo._foo)
你得到MyCppClass
.
有什么我可以做不同的事情__init__.py
或以其他方式使它成为 Pythonfoo.MyCppClass
的规范名称吗?
我正在使用 Python 2.7;如果该解决方案也适用于 2.6,那就太好了。