【发布时间】:2021-09-08 16:51:25
【问题描述】:
Python
谁能帮我理解这段代码,我是Python新手,这个函数是如何工作的?
def makeInc(x):
def inc(y):
return y + x
return inc
incOne = makeInc(1)
incFive = makeInc(5)
print(incOne(5)) # returns 6
print(incFive(5)) # returns 10
【问题讨论】:
-
也许这有助于Why aren't python nested functions called closures?(适用于 Python 2,但该参数应适用于 Python 3)。
-
您的 makeInc 函数将 inc 函数作为值返回,因此当您将第一个函数调用为 incOne = makeInc(1) 时,它将 x 的值设置为 1,并在您调用时返回您的 inc 函数以再次从 incOne var 调用incOne(5) 它设置 y =5 并计算 x 和 y 的和并返回值。它被称为嵌套函数
标签: python closures higher-order-functions