访问传递给函数python的lambda值
当我在调用函数的同一行上传递值时,我试图访问lambda函数的值。获取该值的唯一方法是返回(f)。是否有方法访问此之前的值并将其与其他值进行比较访问传递给函数python的lambda值,python,function,python-3.x,lambda,arguments,Python,Function,Python 3.x,Lambda,Arguments,当我在调用函数的同一行上传递值时,我试图访问lambda函数的值。获取该值的唯一方法是返回(f)。是否有方法访问此之前的值并将其与其他值进行比较 def func(f): return(f) func(lambda x: x*2)(3) 6 你不能。(3)被传递给func()返回的内容,因此func无法访问它。情况就是这样: def func(f): return f # parenthesis unnecessary. func(lambda x: x*2)(3) 当l
def func(f):
return(f)
func(lambda x: x*2)(3)
6
你不能。(3)
被传递给func()
返回的内容,因此func
无法访问它。情况就是这样:
def func(f):
return f # parenthesis unnecessary.
func(lambda x: x*2)(3)
当lambda函数返回时,它将转到:
(lambda x: x*2)(3)
即:
3*2 # 6
这样,您可以看到函数不会与传递给lambda的参数交互。您无法直接访问它。我仍然不确定您的用例-您是否正在尝试这样做
def func(f, *args):
result = f(*args)
# Do some simple comparison with the result of the lambda
myValue = 8
msg = "8 > %d" if 8>result else "8 <= %d"
return msg % result
print(func(lambda x:x*2, 3)) # prints 8 > 6
print(func(lambda x:x*2, 5)) # prints 8 <= 10
print(func(lambda x:x**2, 3)) # prints 8 <= 9
def func(f,*args):
结果=f(*args)
#与lambda的结果做一些简单的比较
myValue=8
msg=“8>%d”if 8>result else“8问题是什么?访问什么变量?在哪里?它的值是什么意思?当我将lambda函数传递给func()并在func()调用行的末尾给lambda x(3)的值时。它将(3)传递给func()中的lambda然后得到值6。我如何在函数体中访问这六个值。在哪个函数体中?请详细说明。