Зачем использовать абсолютный, а не относительный импорт в пакете Python? - PullRequest
0 голосов
/ 16 января 2019

Я недавно создал пакет Python и в нем использовал только относительный импорт для доступа к функциям, хранящимся в других методах.

Теперь в Numpy я вижу много файлов, которые интенсивно используют абсолютный импорт, например, этот файл . В нем много утверждений типа from numpy.core import overrides.

Я не вижу недостатка в использовании относительного импорта. Почему они так делают, а не from ..core import overrides? Разве абсолютный импорт не требует, чтобы numpy уже был установлен?

1 Ответ

0 голосов
/ 16 января 2019

Абсолютный и относительный импорт в Python

Абсолютный импорт

Абсолютный импорт предпочтителен, потому что он достаточно четкий и понятный.Легко сказать, где именно находится импортируемый ресурс, просто взглянув на утверждение.Кроме того, абсолютный импорт остается действительным, даже если текущее местоположение оператора импорта изменяется.Фактически, PEP 8 явно рекомендует абсолютный импорт.

Иногда, однако, абсолютный импорт может быть довольно подробным, в зависимости от сложности структуры каталогов.

Относительный импорт

Одно явное преимущество относительного импорта заключается в том, что они довольно лаконичны.

К сожалению, относительный импорт может быть запутанным, особенно для общих проектов, где структура каталогов может измениться.Относительный импорт также не так удобен для чтения, как абсолютные, и определить местоположение импортируемых ресурсов нелегко.

PEP8 : об импорте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...