如何使用 python c api 创建嵌套模块(包?)?
我希望客户端代码(python)能够做这样的事情:
import MainModuleName
import MainModuleName.SubModuleName
而不是当前:
import MainModuleName
import MainModuleNameSubModuleName
哪个 imo 看起来很丑陋并且使命名空间困惑。
有没有可能不用弄乱文件系统目录?
最佳答案
您不会“乱搞”文件系统目录。文件系统目录是你创建子模块的方式,除非你真的想变得晦涩难懂并且有很多不必要的痛苦。
你想要一个名为 MainModuleName.SubModuleName
的模块然后 MainModuleName
应该是一个带有 __init__.py
的目录文件。
编写 C 模块的一种常见方法是将所有 C 代码放在名称以下划线开头的模块中,在本例中为 _mainmodulename.c
,然后从 Python 文件导入它们。这样做是为了让您只需要在 C 中实现必须在 C 中实现的事情,其余的您可以在 Python 中完成。您也可以通过这种方式使用纯 Python 回退。我建议你做类似的事情,在 Python 中创建模块结构,然后使用下划线名称从 C 模块导入类和函数。
关于python - 使用 python c api 的嵌套模块(包)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20628405/