Я пытаюсь импортировать модуль изнутри функции и иметь его доступным для всего моего файла так же, как если бы я импортировал вне любых функций и перед всем другим кодом. Причина, по которой это происходит в функции, заключается в том, что у меня нет большого контроля над структурой скрипта. Возможно ли это, не прибегая к таким вещам, как взлом __builtin__ или передача того, что мне нужно во всем моем коде?Можно ли импортировать в глобальную область изнутри функции (Python)?
ответ
Как о чем-то вроде globals()["os"] = __import__("os")?
Я думаю, это может быть завернуты в родовой функции, если вы хотите, так как имя модуля является строкой.
Это хорошо, потому что индекс может использоваться для эмуляции поведения «import as», который не является (я считаю) встроенным в '__import __()'. Оказывается, это не решает мою проблему, но отвечает на вопрос, который я задал. – scott77777
Увидев ваши новые комментарии, я хочу подчеркнуть, что это звучит ненужно. Вы фактически модифицируете скрипт более, импортируя в функции, чем путем импорта в верхней части сценария обычным способом. Тем не менее, в духе ответа на заданный вопрос, я оставляю свой предыдущий ответ.
Я честно не уверен, что это правильный способ сделать это, но быстрая проверка подтверждает, что если вы объявляете имя модуля в качестве global
в функции перед импортом, она импортируется в глобальное пространство имен.
>>> def import_re():
... global re
... import re
...
>>> re
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 're' is not defined
>>> import_re()
>>> re
<module 're' from '/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/re.pyc'>
Не делайте этого, если вам действительно не нужно - и затем пишите его большими красными буквами, так сказать.
- 1. Можно ли импортировать данные OSM изнутри psql?
- 2. изменить глобальную область видимости функции в JavaScript
- 3. Когда функции включены в глобальную область?
- 4. Извлечь аргументы функции в глобальную область (javaScript)
- 5. Dot-sourcing функции из файла в глобальную область внутри функции
- 6. определение функции python: функция, возвращающаяся локально в глобальную область
- 7. Как объявить глобальную переменную изнутри функции?
- 8. Можно ли вызвать функции PHP изнутри ReactJS
- 9. Можно ли использовать возврат изнутри лямбда-функции
- 10. Как получить глобальную область внутри функции определения?
- 11. Установить глобальную переменную изнутри макроса
- 12. Можно ли перегрузить/импортировать в Python?
- 13. Угловая область, доступная изнутри функции foreach
- 14. Вложенные функции стрелка получает глобальную область видимости
- 15. Можно ли импортировать всю рабочую область в eclipse?
- 16. Можно ли импортировать класс, определенный внутри функции?
- 17. Можно ли импортировать * в машинописи
- 18. python - вызов функции изнутри себя
- 19. Переместить JavaScript-методы в глобальную область
- 20. Можно ли определить, является ли объект временным изнутри функции-члена?
- 21. Можно ли импортировать скомпилированный файл python?
- 22. Добавить глобальную переменную в область
- 23. эффективно перемещать среду изнутри функции в глобальную среду
- 24. Как определить глобальную функцию в Python?
- 25. Нажать переменную в глобальную область?
- 26. Python - Можно ли передать себя внешней функции
- 27. функция экспорта в глобальную область в scalajs
- 28. Можно ли импортировать код python в кукольные файлы?
- 29. Импортировать глобальную переменную в AppleScript
- 30. область действия функции python
Не делайте этого, если вас беспокоит следующий человек, который должен прочитать ваш код (возможно, вы сами). Похоже, вы используете плохую организационную практику в качестве предлога для плохой практики кодирования; попытайтесь исправить первопричину. – msw
Я изменяю проект с открытым исходным кодом и пытаюсь изменить необходимый абсолютный минимум. – scott77777
Итак, пытаясь изменить необходимый минимум, вы сделаете его непонятным для всех других участников. Это плохой компромисс. – msw