【问题标题】:python lambda raises variable not defined error with multiple argumentspython lambda引发带有多个参数的变量未定义错误
【发布时间】:2017-01-11 19:18:50
【问题描述】:

在尝试编写我理解的单行斐波那契数列时,fib = lambda a, b: b, a + b"'b' is not defined" 存在问题

但是,当我执行sum = a, b, c: a + b + c 时,我没有收到任何错误。 sum(1, 2, 3) 完美运行并返回 6

我研究了全局变量,发现如果我在开始之前将a和b设置为Null,它不会给我一个错误,但是有没有办法不这样做?

【问题讨论】:

    标签: python python-3.x lambda


    【解决方案1】:

    您需要在 lambda 主体周围加上括号:

    fib = lambda a, b: (b, a + b)
    

    否则 Python 认为是这样的:

    fib = (lambda a, b: b), a + b
    

    顺便说一句,如果您只是要将函数分配给一个名称,那么使用 lambda 并没有真正的目的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-03
      • 2020-03-31
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多