В Python импорт используется для импорта модулей или пакетов из внешних источников, что упрощает повторное использование кода и организацию проектов. При импорте модулей у вас есть возможность использовать относительный или абсолютный импорт. В этой статье мы рассмотрим оба метода и приведем примеры кода, иллюстрирующие их использование.
Относительный импорт.
Относительный импорт позволяет импортировать модули или пакеты, расположенные в одном и том же проекте или иерархии пакетов. Они указываются относительно текущего местоположения модуля. При относительном импорте используются точки для обозначения положения модуля относительно текущего местоположения.
Пример 1. Импорт модуля из того же пакета
from .module import some_function
Пример 2. Импорт модуля из родительского пакета
from ..parent_package.module import some_function
Пример 3. Импорт модуля из родственного пакета
from ..sibling_package.module import some_function
Абсолютный импорт.
Абсолютный импорт позволяет импортировать модули или пакеты, используя их полный путь из корневого каталога проекта. Они предоставляют явный и однозначный способ импорта модулей, независимо от местоположения текущего модуля.
Пример 1. Импорт модуля из корневого каталога проекта
from project.module import some_function
Пример 2. Импорт модуля из подпакета
from project.package.subpackage.module import some_function
Пример 3. Импорт модуля из внешнего пакета
import external_package.module
Когда использовать относительный импорт:
Относительный импорт обычно используется внутри пакета или модуля для импорта других модулей в том же пакете или связанных пакетах. Они полезны, если вы хотите сохранить структуру пакета и избежать жесткого кодирования полного пути к импортируемому модулю.
Когда использовать абсолютный импорт:
абсолютный импорт обычно используется при импорте модулей или пакетов из внешних источников или когда вы хотите явно указать полный путь к импортируемому модулю. Они особенно полезны при работе со сторонними библиотеками или когда вы хотите избежать потенциальных конфликтов имен.
Как относительный импорт, так и абсолютный импорт имеют свои варианты использования в Python. Относительный импорт подходит для импорта модулей в одном и том же пакете или связанных пакетах, тогда как абсолютный импорт больше подходит для импорта модулей из внешних источников или когда вы хотите указать явный путь. Понимание различий между этими двумя методами импорта поможет вам писать более чистый и удобный в сопровождении код.