Как избежать многократной загрузки модуля? - PullRequest
2 голосов
/ 10 июля 2020

Итак, я обнаружил проблему при "создании" модулей. Скажем, я создаю красивый модуль с именем foo, в котором я определяю функцию с именем function, которая зависит от numpy:

foo.py:

"""
This is foo a nice module
"""
import numpy as np

def function(parameter):
    return(np.zeros(parameter))

Затем в другом скрипте я хочу вызвать свой модуль:

import foo

Итак, моя проблема в том, что модуль numpy загружен внутри foo, поэтому я могу вызвать его из foo (например, я могу foo.np.zeros())

Есть ли какой-либо способ, о котором я не знаю, в котором модуль все еще будет работать без загрузки всех numpy в него (естественно, numpy должен быть загружен глобально, поэтому foo работает, но я не Я не хочу, чтобы он был доступен из foo.np)

До сих пор я пробовал:

if __name__ == '__main__':
     import numpy as np

Но это ломает модуль foo, даже если numpy загружен.

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