Относительный импорт используется для импорта модулей или пакетов внутри одного пакета. Он указывает путь относительно текущего файла. Абсолютный импорт указывает полный путь к модулю или пакету от корневой директории проекта или стандартных библиотек Python.
Относительный импорт:
. или ..) или неявным (устаревший и нерекомендуемый).Пример явного относительного импорта:
python
python
Абсолютный импорт:
Пример абсолютного импорта:
python
Сравнение:
| Характеристика | Относительный импорт | Абсолютный импорт |
|---|---|---|
| Путь | Относительно текущего файла | От корневой директории/stdlib |
| Читаемость | Менее, если не знаком с пакетом | Более |
| Надежность | Менее при рефакторинге | Более |
| Использование | Внутри пакета | Везде |
| Рекомендации PEP 8 | Явные относительные импорты | Предпочтительнее |
PEP 8 рекомендует использовать абсолютные импорты, так как они более читабельны и надежны. Относительные импорты следует использовать только для импорта внутри пакета, где их использование упрощает код. Неявные относительные импорты в Python 3 полностью удалены.