Python lambda函数的工作方式不正确

2024-04-26 17:35:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我是条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?你知道吗


Tags: lambda函数情况数字
2条回答

这些实际上是以正确的方式工作的。第一个lambda表达式类似于:

def f(y):
    return y * i

如您所见,y是函数的参数。它返回argument*i(不管i的值是什么)。你知道吗

所以(lambda y: y*i)(i)就像调用f(i)。现在您已经将i的值设置为5。所以它基本上是f(5)并返回值(5*5)->25。你知道吗

第二个表达式类似于:

def g(y):
     return 1 * y

您正在g()中传递ii的值是5,所以这就像调用g(5)并返回值(1*5)->5。你知道吗

您已经传递了i作为第一个参数。这意味着lambda中的y绑定到i中的值。然后用y乘以i。结果是5*5或25。你知道吗

相关问题 更多 >