Подтвердить что ты не робот

Автоматическое импортирование Python

Возможный дубликат:
AUTOLOAD Perl в Python ( getattr на модуле)

Я исхожу из PHP-фона и пытаюсь изучить Python, и я хочу быть уверенным в том, чтобы делать вещи "Python way", а не как раньше.

Мой вопрос исходит из того факта, что в PHP5 вы можете настроить свой код, поэтому, если вы попытаетесь вызвать класс, который не существует в пространстве имен, сначала будет запущена функция, которая загрузит класс и позволит продолжить как будто он уже загружен. преимущества этого - классы не были загружены, если они не были вызваны, и вам не пришлось беспокоиться о загрузке классов перед их использованием.

В python много внимания уделяется оператору import, неужели неуместно пытаться автоматически импортировать трюк с помощью python, чтобы облегчить необходимость в инструкции по импорту? Я нашел этот модуль, который предлагает автоматический импорт, однако я не знаю, если это лучший способ сделать это, или если автоматический импорт модулей это то, что рекомендуется, мысли?

4b9b3361

Ответ 1

Импорт служит, по меньшей мере, двум другим важным целям, помимо того, что модули или содержимое модулей доступны:

  • Они служат своего рода выражением о намерениях - "этот модуль использует службы из этого другого модуля" или "этот модуль использует службы, принадлежащие определенному классу" - например, если вы делаете обзор безопасности для кода обработки сокетов, вы можете начать с просмотра только модулей, которые импортируют socket (или другие связанные с сетью модули).
  • Импорт служит прокси для сложности модуля. Если вы столкнулись с десятками строк импорта, возможно, настало время пересмотреть свое разделение проблем внутри модуля или в рамках вашего приложения в целом. Это также является хорошей причиной, чтобы избежать импорта типа from foo import * ".

Ответ 2

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

Тем не менее, нет ничего естественного в автоматическом импорте. Из-за природы прокси могут быть некоторые подводные камни (например, при просмотре вещи, которая еще не была импортирована). Несколько автоматических импортирующих библиотек плавают вокруг.

Ответ 3

Если вы изучаете Python и хотите сделать что-то на Python, просто импортируйте модули. Очень необычно находить autoimports в коде Python.

Ответ 4

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