假设我有以下功能:
def f(**kwargs):
for key in kwargs.keys():
print(key + ': ' + str(kwargs[key]))
def make_kwargs():
# My example implementation here
params = {'a' : 1, 'b' : 2}
return params # Here is the part I don't know how to do
必须以下列方式调用这些函数:
f(make_kwargs())
然而,这将返回我的TypeError
TypeError: f()接受0个位置参数,但给出了1
我试过:
return **params
但是语法是无效的。
假设我不能修改函数f()
及其调用方式(f(make_kwargs())
)。我能修改的唯一部分是如何实现make_kwargs()
。我想知道有什么办法吗?
发布于 2019-08-25 07:25:42
make_kwargs
返回一个字典,所以您只是将一个字典传递给f
。您希望将该字典解压缩为关键字参数,如下所示:
f(**make_kwargs())
发布于 2019-08-25 08:57:26
仍然可以打印这些值,但是在第二个调用中仍然会得到TypeError。
def f(**kwargs):
for key in kwargs.keys():
print(key + ': ' + str(kwargs[key]))
def make_kwargs():
# My example implementation here
params = {'a': 1, 'b': 2}
return f(**params)
f(make_kwargs())
https://stackoverflow.com/questions/57647298
复制相似问题