我知道这种模式是非常糟糕的,我问这个问题是出于好奇,而不是因为我计划在生产代码中这样做.
假设我定义了一个函数:
def function(x, y):
return x + y + z
并且变量z
在定义该函数的模块中不存在.
有没有可能从另一个模块导入函数并以某种方式操作代码对象,或者使用修饰器或其他东西玩一些肮脏的把戏,以使其正常工作?
我已经try 将co_varnames
和co_argcount
分别设置为(x, y, z)
和3
,但这仍然没有将名称z
与似乎的参数绑定在一起.
需要明确的是,我知道如果我在相同的模块中定义一个全局名为z
的函数,我询问的是如何导入此函数,并以某种方式将z
绑定到我想要的另一个模块中的变量.