如何在(子)模块中使用__init__.py定义名称空间?

如何在(子)模块中使用__init__.py定义名称空间?,第1张

如何在(子)模块中使用__init__.py定义名称空间?

这是一种类似python的好方法来定义名称空间吗?还是有一种更好/常见的方式来组织python文件包的文件系统。(我没有为此找到合适的教程/示例。)

这是设置Python包的 不错 方法。只有 还好 并没有因为内容“好”

foo.py
bar.py

我不喜欢使用

package.foo.foo()
/
package.subpackage.bar.bar()
,而是想使用
package.foo()
/
package.subpackage.bar()

在这种情况下,您不能这样做。不混合名称空间是不这样做的充分理由

from package.subpackage.bar import bar

这本来是更好,如果

def foo(): ...
def bar():...
是直接
__init__.py
。这样,您可以完成
package.foo()
package.subpackage.bar()
。也可以通过使用
__all__
init来完成,但
import*
也不被认为是好的。

或者,

foo
bar
包应该有更多在它喜欢
foo.function1
foo.other_func
bar.drink
等这使得它更加人性化理解的组织。

示例和参考文献不在适用于StackOverflow良好问题的范围内,但以下是一些经过深思熟虑的问题:

  • 结构化项目—《 Python旅行者指南》
  • 组织模块和包的Python方式
  • 如何组织一个Python项目?


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5629751.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存