您可以放心使用2号,因为不应该发生任何冲突-
您将始终从与当前模块相同的包中导入模块。请注意,如果您的模块与标准库模块之一具有相同的名称,则将导入该模块而不是标准库模块。从文档中:
spam导入名为模块的模块时,解释器首先搜索具有该名称的内置模块。如果未找到,那么它将搜索spam.py该变量给定的目录列表中命名的文件sys.path。sys.path从以下位置初始化:
包含输入脚本的目录(或当前目录)。
PYTHONPATH(目录名称列表,语法与shell变量
PATH)。取决于安装的默认值。
初始化后,Python程序可以进行修改
sys.path。 包含正在运行的脚本的目录位于搜索路径的开始,在标准库路径的前面。
这意味着将加载该目录中的脚本,而不是库目录中相同名称的模块。除非打算进行更换,否则这是一个错误。有关更多信息,请参见标准模块部分。
from mypackage.a import*出于一致性原因,可以在整个项目中使用该选项。在某些模块中,您仍然必须进行绝对导入。因此,您不必考虑模块是否在相同的程序包中,而只需在整个项目中使用统一的样式即可。另外,这种方法更加可靠和可预测。
Python样式指南不建议使用相对导入:
强烈建议不要将相对进口用于包装内进口。始终对所有导入使用绝对包路径。即使现在 PEP
328已在Python
2.5中完全实现,仍不鼓励使用其显式相对导入的样式。绝对导入更具可移植性,通常更具可读性。
从python
2.5开始,引入了用于包内相对导入的新语法。现在,您
.可以引用当前模块,也可以引用
..高于1级的模块。
from . import echofrom .. import formatsfrom ..filters import equalizer
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)