Форум сайта python.su
1
Есть некий модуль А (обертка, по сути), вызывающий модуль Б.
В зависимости от результатов работы модуля Б (флаг удачной попытки), модуль А решает, пустить его еще раз через reload(), или хватит.
Вопрос: как передать этот флаг из Б в А?
Офлайн
47
Ryogaмодули не работают, работают функции и методы
от результатов работы модуля
Офлайн
1
Прекрасное лингвистическое замечание, которое, тем не менее, никак не помогает в решении проблемы.
Пока в голову пришло лишь достаточно топорное решение - костыль с передачей данных через третий модуль. Т.е. дополнить и обертку, и импортируемый модуль импортом некоего объекта из модуля С (списка из одного элемента, класса с одним атрибутом и т.д.), после чего модуль Б получит возможность, изменив его значение, передать после завершения информацию в А.
Офлайн
568
RyogaТем не менее имеющее прямое отношение к вопросу. Вы можете привести пример “вызова модуля из модуля” причем модуль “получает результаты работы модуля” из стандартной библиотеки питона? Какая из известных вам библиотек так делает?
Прекрасное лингвистическое замечание,
Офлайн
47
модули для разбиения кода на части.
используй функции
Офлайн
253
FishHookПоупражняемся в лингвистике.
Прекрасное лингвистическое замечание,
Отредактировано doza_and (Сен. 30, 2014 20:26:03)
Офлайн
26
Я сейчас скажу, что функция тоже может быть модулем… С 2.6, кажется.
Офлайн
47
ZZZWUT?
функция тоже может быть модулем
Офлайн
26
В sys.modules можно положить всё, что душе захочется. И делать что-то типа так:
import my_super_module print(my_super_module())
Офлайн
857
>>> import sys
>>> sys.modules['x'] = lambda: print('x')
>>>
>>> x()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
>>>
>>> import x
>>> x()
x
>>> type(x)
<class 'function'>
>>> type(sys)
<class 'module'>
>>>
Отредактировано py.user.next (Сен. 30, 2014 23:03:51)
Офлайн