2

如何使用 python c api 创建嵌套模块(包?)?

我希望客户端代码(python)能够执行以下操作:

import MainModuleName
import MainModuleName.SubModuleName

而不是目前:

import MainModuleName
import MainModuleNameSubModuleName

哪个 imo 看起来很丑陋并且使命名空间混乱。

是否有可能不必弄乱文件系统目录?

4

1 回答 1

1

您不会“乱搞”文件系统目录。文件系统目录是您创建子模块的方式,除非您想要真正晦涩难懂并且有很多不必要的痛苦。

您希望调用一个模块MainModuleName.SubModuleName,然后MainModuleName应该是一个带有__init__.py文件的目录。

编写 C 模块的一种常见方法是将所有 C 代码放在名称以下划线开头的模块中,在本例_mainmodulename.c中为 ,然后从 Python 文件中导入它们。这样做是为了让您只需要在 C 中实现必须在 C 中的东西,其余的可以在 Python 中完成。您也可以通过这种方式使用纯 Python 后备。我建议你做类似的事情,在 Python 中创建模块结构,然后从 C 模块中导入类和函数,并使用下划线名称。

于 2013-12-17T07:40:57.920 回答