gpt4 book ai didi

python - 有人可以解释以下输出吗?

转载 作者:太空宇宙 更新时间:2023-11-03 15:47:55 25 4
gpt4 key购买 nike

def closure_add():
x = 3
def adder():
nonlocal x
x+=1
return x
return adder
a = closure_add()
b = closure_add()
print(a())
print(b())
print(b())
print(b())

输出是:

4
4
5
6

如果保存函数“adder”的变量“b”记住变量的范围 (x=3),那么无论调用多少次,输出都不应该是“4”。

最佳答案

下面的链接应该提供更多信息:

在您的示例中,这最终归结为:

  1. 在变量 ab 中实例化两个单独的函数对象
  2. 你调用一次a,它增加一次值
  3. 您调用 b 三次,使值增加三倍

由于在闭包中增加的值在增加它的方法中定义为 nonlocal,因此在父函数中对其进行的每次更改之后,该值都存储在 x 变量。

关于python - 有人可以解释以下输出吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48844049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com