python keyworded lambda函数
这个问题在这里已经有了答案:
你得到这个错误是因为kwargs
是一个dict
。 在你的情况下,这个字典看起来像这样:
{'key': lambda x: x*x}
所以当你迭代dict
,你真的在迭代键,在kwargs
的情况下,它是字符串(并且字符串不可调用)。
如果你真的想要得到lambda,那么你应该在那个关键字中访问kwargs
中的值:
for fart in kwargs:
print(fart)
print(kwargs[fart[](4))
当然,有一个更简单的方法来做到这一点:
for fart, shart in kwargs.items():
print(fart)
print(shart(4))
kwargs
是一本字典。 迭代字典会为您提供关键值。
当你迭代时,如果你期望所有键的lambda函数,只需使用items()
或values()
:
for fart in kwargs:
print(kwargs[fart](4))
或值:
for fart in kwargs.values():
print(fart(4))
更合理的是,你需要调用你的lambda是使用关键key
:
def test1(**kwargs):
print(kwargs["key"](4))
test1(key=lambda x: x*x)
这里打印16