Python: 根据 kwarg 键检查参数名

问题描述 投票:-1回答:1

对不起,我的问题太天真了,但当执行这段代码时,我在检查中得到了错误的信息。

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?

python kwargs
1个回答
2
投票

kwargs 是一个字典,其中键是字符串,值是传入的值。你可以通过用来传递的字符串key来调出某个kwarg。

if "fn" in kwargs:
    fn = kwargs["fn"]

你也可以这样做。

fn = kwargs.get("fn")
if fn is not None:
    ... # do something with `fn`

1
投票

你也可以这样做: key 是你传递的键名的字符串,所以你必须将它与另一个字符串进行比较。

它应该是:

if key=="fn":
    print(value(10))
© www.soinside.com 2019 - 2024. All rights reserved.