python 关键字 lambda 函数

python keyworded lambda function

这是一个简单的 lambda 表达式

var= lambda x: x*x
print(var(4))

简单 我将 lambda 对象存储到一个变量中,使用 var 来完成数学运算。

  1. 我的问题:

    如何创建使用 lambda 作为关键字参数的函数并正确使用它们来执行某些任务

在这段代码中我得到 TypeError: 'str' object is not callable

    def test1(**kwargs):

        for fart in kwargs:

            print(fart)   #output is == key
            fart(4)   #fart(4)==TypeError

    test1(key=lambda x: x*x)

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

您收到此错误是因为 kwargsdict。在你的例子中,这个字典看起来像这样:

{'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))