【发布时间】:2016-05-11 04:56:57
【问题描述】:
我在同一目录中的 main.py 文件上运行 python 3.4。 /root 目录不在 python 路径中。它只是脚本正在执行的当前目录。每次测试后都删除了所有 pycache 文件夹
那么为什么__init__.py 很重要呢?我认为这是必要的,如这篇文章所述:
如果您删除 init.py 文件,Python 将不再在该目录中查找子模块,因此尝试导入模块将失败。
现在,在我看来,__init__.py 只不过是一个 可选 构造函数,我们在其中进行内务管理和其他可选操作,例如指定“all”变量等。但不是关键拥有的物品。
显示测试结果的图片:
这是怎么回事?
【问题讨论】:
-
我是个大菜鸟,看了你发的链接,我不是特别明白。命名空间包和普通包到底有什么区别?我是否必须将其上传到 pypi 才能成为“包”。 “包”这个词在 python 中被过度使用,并且在不同的上下文中指代不同的事物。你能更具体一点来帮助我们新手吗? @vaultah
-
好吧,你可以阅读Namespace vs regular package和PEP 420
-
我也读过,所有的解释似乎都在重申同样的口头禅 >命名空间包可能没有物理表示 >命名空间包是一个虚拟包,其内容可以分布在 Python 查找的各个地方小路。 > 有时,如果作为小鸡蛋的集合分发,大包装会更有用。但是,Python 通常不允许从多个位置检索包的内容。 “命名空间包”是这个问题的解决方案。这些例子模棱两可,没有提供有效的例子@vaultah
-
那么初始化文件本质上是完全可选的吗?它仅充当家政指导员,我们可以在没有 init 的情况下使用文件夹,就像我们可以在 php 中使用它们一样,例如,组织代码?所以 init 更像是一个警告而不是一个要求? @vaultah
标签: python module packages python-3.4