Python - Как вы можете использовать псевдоним модуля для импорта его подмодулей? - PullRequest
8 голосов
/ 03 февраля 2012

У меня длинное имя модуля, и я хочу избежать многократного ввода его в моем документе.Я могу просто сделать import long_ass_module_name as lamn и назвать это так.Однако в этом модуле есть много подмодулей, которые я также хочу импортировать и использовать.

В этом случае я не смогу написать import lamn.sub_module_1, потому что импорт python не распознает этот псевдоним, который я создал для своего long_ass_module_name.Как мне этого добиться?

Должен ли я просто автоматически импортировать все подмодули из моего основного модуля __init__.py?

Ответы [ 2 ]

11 голосов
/ 03 февраля 2012

Псевдоним объекта все еще изменяется при импорте подмодулей,

import my_long_module_name as mlmn
import my_long_module_name.submodule

mlmn.submodule.function()

Оператор import всегда принимает полное имя модуля. Модуль является просто объектом, и импорт подмодуля добавит атрибут к этому объекту.

1 голос
/ 16 июня 2016

Этот (крайне не рекомендуемый) способ импорта всех членов объекта в текущее пространство имен работает путем поиска словаря vars():

import my_bad_ass_long_module.bafd as b

# get __dict__ of current namespace
myn = vars() 
for k,v in vars(b).items():
  # populate this namespace with the all the members of the b namespace (overwriting!)
  myn[k] = v
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...