Как импортировать извне в модуль - PullRequest
1 голос
/ 24 мая 2019

1.Что я хотел бы сделать

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

2.То, что я до сих пор придумал

Единственный способ, которым я пока знаю, как это сделать - создать словарь .json с соответствующей структурой для импорта соответствующих модулей.Однако это только минимизирует проблему, так как в любом случае в каждом модуле должно быть with open(...) операторов.

3.Мой код «Решение»

{
 "import module_x" : [
                      "module1.py",
                      "module2.py"
                     ]
}

А потом, внутри module1 и module2, я бы:

import json

with open(path_to_imports + 'imports.json', 'r') as f:
    import_dict = json.load(f)

for key, mods in import_dict.items():
    if __file__ in mods:
        exec(key)

Теперь, есть ли лучший, более питон, как это сделать?

1 Ответ

1 голос
/ 24 мая 2019

Вы можете использовать файл Python __init__.py для обработки этого.

Выезд Для чего нужен __init__.py?

...