📜  Python中的绝对和相对导入(1)

📅  最后修改于: 2023-12-03 14:46:41.553000             🧑  作者: Mango

Python中的绝对和相对导入

在Python中,有两种主要的导入方式:绝对导入和相对导入。这两种方式适用于不同的场景,并且有不同的语法。

绝对导入

绝对导入是指从项目的根目录开始,按照从上到下的顺序来导入模块。使用绝对导入可以避免命名冲突,并且更容易看出程序中引用的是哪个模块。

示例代码
# 导入顶层模块
import my_module1
from my_module2 import my_function

# 导入子模块
from my_package import my_submodule

# 导入包
import my_package1.my_module
from my_package2 import my_module
相对导入

相对导入是指从当前模块的位置开始,按照相对路径导入模块。使用相对导入可以避免繁琐的绝对路径,但是必须要保证当前模块和导入的模块在同一个包中。

示例代码
# 导入同级模块
from . import my_module1
from .my_module2 import my_function

# 导入同级子模块
from . import my_submodule

# 导入父级模块
from .. import my_package1
from ..my_package2 import my_module

需要注意的是,在使用相对导入时,导入的模块的位置必须在当前模块的同级或者子级目录中。如果在父级目录中,则需要使用..和模块的路径来导入。

总结

绝对导入和相对导入都有各自的优点,需要根据具体的情况来选择使用哪种方式。在大型项目中,通常会使用绝对导入来避免命名冲突,并且提高代码的可读性;在小型项目中,则可以使用相对导入来简化代码。