У меня есть 2 модуля A и B.
модуль A не имеет ничего внутри, а модуль B имеет функцию «F»
Я хочу назначить функцию 'f' для модуля A, но я хочу переопределить эту функцию globals , потому что я хочу, чтобы эта функция использовала переменные модуля A.
Но там у меня есть некоторые проблемы. с этим простым кодом:
print A
print B
print '---'
from copy import deepcopy
setattr(A, 'f', deepcopy(B.f))
A.f.__module__ = A
A.f.__globals__['__name__'] = 'A'
print A
print B
У меня следующий результат:
<module 'A' from '<path>/A/__init__.pyc'>
<module 'B' from '<path>/B/__init__.pyc'>
---
<module 'A' from '<path>/A/__init__.pyc'>
<module 'A' from '<path>/B/__init__.pyc'>
Почему имя модуля меняется, когда я меняю только одну из функций globals key и как я могу предотвратить это?