Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Python - циклический импорт (http://forum.oszone.net/showthread.php?t=321844)

Aifear 18-12-2016 17:14 2696653

Python - циклический импорт
 
Help!!!
Есть какой-то код содержащий этот кусок, но есть одна проблема: импорт модуля выполняется только один раз...
Как это можно исправить?
Код:

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


Iska 18-12-2016 17:55 2696661

Цитата:

Цитата Aifear
Как это можно исправить? »

Не помещать импорт внутрь цикла.

greg zakharov 18-12-2016 19:03 2696685

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 2696710

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

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


Время: 11:09.

Время: 11:09.
© OSzone.net 2001-