假设有一个模块 a
,除了所有其他内容之外,它还公开了一些子模块 a.b
。
AFAICS,希望以这样一种方式维护模块:输入 import a
、import a.b
,然后调用 a 中特定于 b
的内容。以下方式:a.b.b_specic_function()
或 a.a_specic_function()
。
我想问的是如何达到这样的效果?
有一个目录 a
,里面有源代码文件a.py
。似乎是合乎逻辑的选择,认为它看起来像import a.a
,而不是import a
。我看到的唯一办法就是将a.py
的代码放到a
目录下的__init__.py
中,认为肯定是错误的...
那么如何保持命名空间干净呢?
最佳答案
您可以将代码放入__init__.py
中。对于一个小的分包来说这并没有什么问题。如果代码变得很大,通常会有一个具有重复名称的子模块,例如 a/a.py
,然后在 __init__.py
中使用 from 导入它.a 导入 *
.
关于将项目拆分为模块的 Pythonic 方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54622423/