python keyworded lambda函数

这个问题在这里已经有了答案:

  • 使用'for'循环遍历字典12个答案

  • 你得到这个错误是因为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

    链接地址: http://www.djcxy.com/p/30373.html

    上一篇: python keyworded lambda function

    下一篇: How to get value from the dict..?