【问题标题】:Strange unknown lambda syntax奇怪的未知 lambda 语法
【发布时间】:2017-04-09 13:42:08
【问题描述】:

我知道这是做什么的(使k 指的是实际值而不是最后一个值)但是这个语法叫什么? 来自https://stackoverflow.com/a/215326/2375119

funcs = [] 
for k in range(10):
     funcs.append(lambda k = k: k)

>>> funcs[7]()
7 # not 9

【问题讨论】:

    标签: python lambda syntax


    【解决方案1】:

    语法没有特别的名字。这是将闭包绑定到其参数的一种方式; Python closures are late binding.

    该语法是一种将当前迭代值绑定到每个 lambda 的方法,方法是在创建 lambda 时将其作为默认参数传递。由于在创建函数时会评估默认参数,因此该值会保留在函数中。

    【讨论】:

      猜你喜欢
      • 2013-09-05
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多