我正在寻找一种装饰任意python函数的方法,以便调用替代函数而不是原始函数,所有参数作为列表或字典传递。
更准确地说,是这样的(其中 f 是任何函数,replacement_f 接受一个列表和一个字典):
def replace_func(f, replacement_f):
def new_f(*args, **kwargs):
replacement_f(args, kwargs)
return new_f
但是,我不能replacement_f
在里面引用new_f
。而且我不能使用传递replacement_f
tonew_f
作为不同参数的默认值的标准技巧,因为我使用的是*args
和**kwargs
变量参数列表。
调用原始函数的位置不能更改,并且将接受位置参数和命名参数。
我担心这不是很清楚,但如果需要,我很乐意澄清。
谢谢