Мне было лень писать пример… :-)
Но я бы за такое руки отрывал. По самые гланды.
ZZZНе, там имеется в виду, что функция осталась функцией, а модулем не стала. По идее, если вызов модуля допускается, то должен быть синтаксис, который делает модуль вызываемым, навроде __call__ у класса.
Мне было лень писать пример
>>> import types >>> >>> class A(types.ModuleType): ... def __call__(self): ... print(self) ... >>> import sys >>> >>> sys.modules['x'] = A('x name') >>> >>> import x >>> >>> x() <module 'x name'> >>>
ZZZ
Можно даже унаследоваться от types.ModuleType.
py.user.nextЕсли ты не питон-гуру с, хотя бы, пятилетним опытом разработки, лучше туда вообще ничего руками не писать. Эти хаки потом дорого выходят тем, кто пытается их поддерживать.
Простую функцию туда записывать - как-то не то.
ZZZНе, там есть случаи, когда такое надо.
лучше туда вообще ничего руками не писать
ZZZЕсли нужен модуль, который нужно вызывать, то, скорее всего, что-то просто не продумано.
Эти хаки потом дорого выходят
py.user.nextКак я тебя понимаю… Обнять и плакать, да…
мне пришлось больше месяца читать документацию (ужасно сделана) по мокам