主题是包导入和__init__文件:规范中有一个引号:
这些文件有助于防止具有公共名称的目录无意中隐藏稍后在模块搜索路径上出现的真正模块。如果没有这种保障,Python可能会选择一个与代码无关的目录,仅仅因为它看起来嵌套在搜索路径上的早期目录中。
你能给我举个例子吗?
发布于 2014-09-25 11:38:29
如果允许将任何目录视为包,则尝试导入同时作为目录和搜索路径上的模块存在的模块可以选择该目录而不是模块。
假设您有一个images目录和一个images.py模块。如果在前面的搜索路径上找到了import images目录,那么它将找到它。
通过要求__init__.py标记包,您可以在您的Python代码旁边包含这样的数据目录,而不必担心屏蔽同名的真正模块。
https://stackoverflow.com/questions/26037592
复制相似问题