Лучшие практики импорта и привязки имен - PullRequest
0 голосов
/ 18 апреля 2019

Это тесно связано с: Импорт модулей в Python - лучшая практика , но следующий случай на самом деле не обсуждается в деталях.

Если у нас есть модуль coordinates, который определяет один класс Coordinates и несколько служебных функций для работы с типом Coordinates. Каков рекомендуемый способ сделать следующие две вещи:

  1. Импорт полного модуля coordinates
  2. При привязке 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(), но я не совсем уверен, что это действительно хорошее решение (и я не уверен, как обращаться с документацией в таком случае).

1 Ответ

0 голосов
/ 18 апреля 2019

Это вопрос личных предпочтений, но для себя я бы выбрал:

from coordinates import Coordinates

Если , то есть вы используете больше, о, триили четыре вещи из модуля coordinates, или одно из имен, которые вы импортируете из него, конфликтует с именами, которые вы используете из других источников.В любом из этих случаев используйте

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