考虑一个 Python 模块 fmod.py
:
def f(x):
print(x)
def g():
f("g")
现在,g()
函数应移至 gmod.py
:
import fmod
def g():
fmod.f("g")
“保持”fmod.g()
向后兼容的最佳方法是什么?
尝试a)
from gmod import g
def f(x):
print(x)
由于循环导入,这将不起作用:从其他地方导入 gmod 失败。
<小时/>尝试b)
import gmod
def f(x):
print(x)
g = gmod.g
由于同样的问题,这仍然不起作用。
<小时/>尝试c)
def f(x):
print(x)
def g(*args, **kwargs):
import gmod
return gmod.g(*args, **kwargs)
我认为这可行,但相当复杂。
有更好的方法吗?
最佳答案
您可以使用最后一个选项,或按如下方式编辑 __init__.py
文件:
import fmod
import gmod
fmod.g = gmod.g
然后你将能够做到:
import fmod
fmod.g('x') #@UndefinedVariable
关于python - 将 Python 函数移至模块而不破坏兼容性或循环导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57850670/