2024-04-26 17:35:45 发布
网友
我是条Python。以下是我的变量:
>>> y=1 >>> i=5
我使用lambda函数:
>>> (lambda y: y*i)(i) >>> 25
如果y=1,i=5,为什么输出是25???????你知道吗
如果我使用数字:
>>> (lambda y: 1*i)(i) >>> 5
这正常吗?为什么第一种情况下y是5,而另一种情况下y是1?你知道吗
这些实际上是以正确的方式工作的。第一个lambda表达式类似于:
def f(y): return y * i
如您所见,y是函数的参数。它返回argument*i(不管i的值是什么)。你知道吗
y
argument
i
所以(lambda y: y*i)(i)就像调用f(i)。现在您已经将i的值设置为5。所以它基本上是f(5)并返回值(5*5)->25。你知道吗
(lambda y: y*i)(i)
f(i)
f(5)
第二个表达式类似于:
def g(y): return 1 * y
您正在g()中传递i。i的值是5,所以这就像调用g(5)并返回值(1*5)->5。你知道吗
g()
g(5)
您已经传递了i作为第一个参数。这意味着lambda中的y绑定到i中的值。然后用y乘以i。结果是5*5或25。你知道吗
这些实际上是以正确的方式工作的。第一个lambda表达式类似于:
如您所见,
y
是函数的参数。它返回argument
*i
(不管i
的值是什么)。你知道吗所以
(lambda y: y*i)(i)
就像调用f(i)
。现在您已经将i
的值设置为5。所以它基本上是f(5)
并返回值(5*5)->25。你知道吗第二个表达式类似于:
您正在
g()
中传递i
。i
的值是5,所以这就像调用g(5)
并返回值(1*5)->5。你知道吗您已经传递了
i
作为第一个参数。这意味着lambda中的y
绑定到i
中的值。然后用y
乘以i
。结果是5*5或25。你知道吗相关问题 更多 >
编程相关推荐