Импортировать модуль в модуль, не могу объяснить, что я пытаюсь сделать - PullRequest
1 голос
/ 02 июля 2011

Итак, следующий пример. Вот модуль (называемый feedy.py), скажем, в основном каталоге:

import feedparser

feed = feedparser.parse("http://site.com/feed")
[...]

Плохой пример, но в любом случае: моя проблема в основном скрипте (parent dir), я должен сделать

import feedparser

а также

from core import feedy

Однако есть способ устранить необходимость в импорте feedparser, поскольку он уже импортирован в feedy.py?

Надеюсь, вы понимаете, Фике.

1 Ответ

0 голосов
/ 02 июля 2011

В принципе да.Однако обычно это не очень хорошая идея.

Когда вы import модуль, вы фактически объявляете локальную переменную, которая является ссылкой на этот модуль.Так что в feedy у вас есть объект с именем feedparser, который является модулем feedparser, хотя вы можете в любое время переназначить его на любой другой объект Python.

Когда вы import feedy, вы можете ссылаться на любую из экспортируемых переменных feedy как feedy.name.Таким образом, в этом случае feedy.feedparser является модулем feedparser.

Однако, если вы измените способ реализации feedy, чтобы он не импортировал (или не экспортировал) feedparser, этосломает ваш основной сценарий.В общем, вы не хотите экспортировать все, что вы определили, хотя это хорошо для быстрого взлома.

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