在不破坏兼容性或循环导入的情况下将Python函数移动到模块
考虑一个Python模块在不破坏兼容性或循环导入的情况下将Python函数移动到模块,python,python-import,Python,Python Import,考虑一个Python模块fmod.py: def f(x): print(x) def g(): f("g") import fmod def g(): fmod.f("g") 现在,应该将g()函数移动到gmod.py: def f(x): print(x) def g(): f("g") import fmod def g(): fmod.f("g") “保持”fmod.g()向后兼容的最佳方法是什么 尝试(a) 这将
fmod.py
:
def f(x):
print(x)
def g():
f("g")
import fmod
def g():
fmod.f("g")
现在,应该将g()
函数移动到gmod.py
:
def f(x):
print(x)
def g():
f("g")
import fmod
def g():
fmod.f("g")
“保持”fmod.g()向后兼容的最佳方法是什么
尝试(a) 这将不起作用,因为循环导入:
从别处导入gmod
失败
(b) 由于同样的问题,这仍然不起作用
(c) 我认为这是可行的,但相当复杂
有更好的方法吗?您可以使用上一个选项,也可以通过以下方式编辑
\uuuu init\uuuuuuuuuuy.py
文件:
import fmod
import gmod
fmod.g = gmod.g
然后您将能够执行以下操作:
import fmod
fmod.g('x') #@UndefinedVariable
import fmod
fmod.g('x') #@UndefinedVariable