Это тесно связано с: Импорт модулей в Python - лучшая практика
, но следующий случай на самом деле не обсуждается в деталях.
Если у нас есть модуль coordinates
, который определяет один класс Coordinates
и несколько служебных функций для работы с типом Coordinates
. Каков рекомендуемый способ сделать следующие две вещи:
- Импорт полного модуля
coordinates
- При привязке
Coordinates
к coordinates.Coordinates
Два варианта, которые я вижу сейчас:
import coordinates
from coordinates import Coordinates
Но это кажется немного странным, с другой стороны, другое решение, которое я вижу, тоже не кажется очень чистым:
import coordinates
Coordinates = coordinates.Coordinates
Какой из этих двух наиболее часто используется или предпочтительный способ сделать это? Или, может быть, оба из них не следует использовать, в таком случае, что было бы лучшим решением?
Другой вариант, который я рассматриваю, но который я бы предпочел избежать, - это вариант, предложенный в указанном вопросе: import coordinates as crd
, а затем просто используйте crd.Coordinates
вместо Coordinates
. Причина, по которой я хочу этого избежать, заключается в том, что это сделает мой код менее читабельным, особенно когда я использую функцию из модуля coordinates
. Для этой альтернативы я бы предпочел просто позвонить coordinates.Coordinates
, даже если это выглядит избыточно.
Я также подумал сделать мой модуль вызываемым , чтобы coordinates()
автоматически вызывать Coordinates()
, но я не совсем уверен, что это действительно хорошее решение (и я не уверен, как обращаться с документацией в таком случае).