gpt4 book ai didi

python - 在Python中的嵌套函数之间共享局部变量

转载 作者:行者123 更新时间:2023-12-01 05:32:12 26 4
gpt4 key购买 nike

如何让这段代码发挥作用?

def f1():
def f2():
print g
g = 1
print g
g = 0
print g
f2()
print g

f1()

期望的结果当然是0,0,1,1,逐行打印

最佳答案

如果您不想使用全局变量:

def f1():
def f2():
print g[0]
g[0] = 1
print g[0]
g =[0]
print g[0]
f2()
print g[0]

f1()

这是为了解决无法重新分配属于外部作用域的变量的问题。当您重新分配它时,您基本上在嵌套函数中创建了一个新变量。为了解决这个问题,您可以将值包装在列表中,然后重新分配列表的元素。

这是Python 2中的一个问题。Python 3通过使用nonlocal语句修复了这个问题:

http://technotroph.wordpress.com/2012/10/01/python-closures-and-the-python-2-7-nonlocal-solution/

关于python - 在Python中的嵌套函数之间共享局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19955101/

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