Войти

Показать полную графическую версию : Python - циклический импорт


Aifear
18-12-2016, 17:14
Help!!!
Есть какой-то код содержащий этот кусок, но есть одна проблема: импорт модуля выполняется только один раз...
Как это можно исправить?

...
for count in range(10):
__import__('FileName')
...

Iska
18-12-2016, 17:55
Как это можно исправить? »
Не помещать импорт внутрь цикла.

greg zakharov
18-12-2016, 19:03
Iska, если Вы знакомы с Python, то должны были бы обратить внимание, что в вопросе Aifear использется метод __import__, а не import, - первый используется по большей части для подключения модулей, название которых создаются динамически (это всего лишь одно из различилий). А вообще непонятно, что в цикле должно происходить и какого результата ожидал Aifear. Вообще, если в терминале Python вызвать help, получим следующее:
>>> help(__import__)

Help on built-in function __import__ in module builtins:

__import__(...)
__import__(name, globals=None, locals=None, fromlist=(), level=0) -> module

Import a module. Because this function is meant for use by the Python
interpreter and not for general use it is better to use
importlib.import_module() to programmatically import a module.

The globals argument is only used to determine the context;
they are not modified. The locals argument is unused. The fromlist
should be a list of names to emulate ``from name import ...'', or an
empty list to emulate ``import name''.
When importing a module from a package, note that __import__('A.B', ...)
returns package A when fromlist is empty, but its submodule B when
fromlist is not empty. Level is used to determine whether to perform
absolute or relative imports. 0 is absolute while a positive number
is the number of parent directories to search relative to the current module.

shisik
18-12-2016, 21:29
Вероятно, этот модуль содержит некий код, который выполняется при импортировании, и его нужно выполнить несколько раз в цикле. Решение банально простое: оформить код в виде функции и вызывать её в цикле.

Другой причины импортировать модуль многократно я придумать не могу.




© OSzone.net 2001-2012