对不起,我的问题太天真了,但当执行这段代码时,我在检查中得到了错误的信息。
def test_kwargs(n, **kwargs):
if kwargs is None:
print("no keyword args")
return
for key, value in kwargs.items():
print(str(key))
print(str(value))
if key==fn:
print(value(10))
test_kwargs(3,fn=lambda x: x^2)
我在检查中得到一个错误
if key==fn
NameError.名称'fn'未定义。名字'fn'没有定义
然而 print(str(key)) 正确输出'fn'。
那么这到底是怎么回事,为什么测试失败,如何根据可能的参数名来检查key?
kwargs
是一个字典,其中键是字符串,值是传入的值。你可以通过用来传递的字符串key来调出某个kwarg。
if "fn" in kwargs:
fn = kwargs["fn"]
你也可以这样做。
fn = kwargs.get("fn")
if fn is not None:
... # do something with `fn`
你也可以这样做: key
是你传递的键名的字符串,所以你必须将它与另一个字符串进行比较。
它应该是:
if key=="fn":
print(value(10))