访问传递给函数python的lambda值

访问传递给函数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

当我在调用函数的同一行上传递值时,我试图访问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)
当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。我如何在函数体中访问这六个值。在哪个函数体中?请详细说明。