我终于理解了lambda!大概我是这么想的
为什么这不起作用:
示例 1:
for x in range(18, 101):
print("Man's age: ", x, "Women's age: ", lambda x:x//2+9(x))
然而这确实:
示例 2:
for x in range(18, 101):
print("Man's age: ", x, "Women's age: ", (lambda x:x//2+9)(x))
这是否意味着将 lambda 放在括号中等同于调用它?并在其旁边放置另一个开/关括号表示它是参数?
最佳答案
在您的第一个示例中,您正在打印一个 lambda
函数定义
如果将它分配给一个变量并尝试打印它,则相同。
v = lambda x:x//2+9(x)
print v
>>function <lambda> at 0x10c32aaa0
如果要执行,需要执行v(x)
但是,你会得到一个错误,因为 9(x)
语句试图调用一个使用 int 的函数。
正确的使用方法
v = lambda x:x//2+9
print v(2)
>>10
关于python - lambda调用查询(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32731117/