[英]Python lambda used as an argument, calling other arguments from parent function
我是编程新手,在理解Python中的lambda函数时遇到了一些麻烦。 我了解为什么使用它及其有效性。 只是在学习应用方面遇到困难。 我已阅读指南,并观看了有关使用lambda作为参数的演讲。 我试过使用地图功能。 不知道这是否是正确的方法,但这是我最基本形式的代码损坏:
def Coord(x, y, z=lambda: z*2 if z < x or z < y else z)):
print(z)
Coord(10,20,30)
Coord(10,20,12)
Coord(10,20,8)
需要分别返回30、24和32。 不使用lambda的工作代码:
def Coord(x, y, z):
while z < x or z < y:
z*=2
print(z)
您不能在z的默认参数定义中使用Coord函数中的其他参数(在您的情况下为lambda函数)。
您可能需要执行以下操作:
def Coord(x, y, w, z=lambda a,b,c: c*2 if c < a or c < b else c):
print(z(x,y,w))
要么
def Coord(x, y, w):
z=lambda: w*2 if w < x or w < y else w
print(z())
当使用3个参数求值时,这两个定义是等效的,它们的结果是:
>>> Coord(10,20,30)
30
>>> Coord(10,20,12)
24
>>> Coord(10,20,8)
16
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.