[英]lambda calling inquiry (python)
我终于了解了lambdas! 或者我以为
为什么这不起作用:
范例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
Lambda定义了函数,但实际上并未调用它。 只是“ f”和“ f(x)”的区别。 更清晰的解决方案如下所示:
func = lambda x: x//2+9
for x in range(18, 101):
print("Man's age: ", x, "Women's age: ", func(x))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.