python-同一目录中模块的绝对导入

python-同一目录中模块的绝对导入,第1张

python-同一目录模块的绝对导入

您可以放心使用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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存