嵌套模块(包)与python c api?

时间:2013-12-17 07:32:28

标签: python python-c-api python-embedding

如何使用python c api?

创建嵌套模块(包?)

我希望客户端代码(python)能够做到这样的事情:

import MainModuleName
import MainModuleName.SubModuleName

而不是目前:

import MainModuleName
import MainModuleNameSubModuleName

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

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

1 个答案:

答案 0 :(得分:1)

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

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

执行C模块的一种常用方法是将所有C代码放在名称以下划线开头的模块中,在本例中为_mainmodulename.c,然后从Python文件中导入它们。这样做是为了让你只需要在C中实现 中的C语言,其余的你可以在Python中完成。你也可以通过这种方式获得纯Python回退。我建议你做类似的事情,用Python创建模块结构,然后用带有下划线名称的C模块导入类和函数。