我正在为一个项目使用一个模块,我必须将一个函数传递给模块,并且模型会执行以下操作:
class module:
def __init__(self, function, dictionary):
# dictionary is {'x':2, 'y':4, 'z':23}
function(**dictionary)
我的功能是这样的:
def function(*foo):
return sum(foo)
问题是,模块需要命名变量,并且会像解压字典一样将其传递给函数,并且其中的元素数量dictionary
可以是可变的,所以我不能将函数预先编写为def function(x,y,z): return sum(x,y,z)
,这会引发错误。我不想修改模块,因为那样的话,代码就不会通用。如何仅通过更改代码来解决此问题?
编辑:我需要foo
作为在函数中使用的列表