здесь, в офисе, у нас есть библиотека, названная в честь названия компании, и внутри нее подбиблиотеки, более или менее для каждого проекта, и в каждой подбиблиотеке может быть больше модулей или библиотек. мы используем Django, и это делает нашу иерархию на пару шагов глубже...
Я немного озадачен различиями между следующими инструкциями импорта:
1:
import company.productline.specific.models, company.productline.base.models specific, base = company.productline.specific, company.productline.base2:
import company.productline.specific.models, company.productline.base.models from company.productline import specific, base
3:
from company.productline import specific, base import company.productline.specific.models, company.productline.base.models
первый стиль импортирует только models
? какие тогда имена specific
и base
доступны в текущем пространстве имен?
что происходит при инициализации модулей, если импортировать сначала подмодули и только потом содержащие библиотеки?
возможно, самый аккуратный стиль — последний, где ясно (по крайней мере, мне), что я сначала импортирую два модуля и помещаю их имена непосредственно в текущее пространство имен, а второй импорт добавляет подмодуль model
к обоим только что импортированным модулям.
с другой стороны, (1) позволяет мне импортировать только внутренние модули и ссылаться на них в компактной, но понятной форме (specific.models
и base.models
)
не уверен, что это вопрос, но мне любопытно читать комментарии.