gpt4 book ai didi

python:如何捕获在非全局祖先外部作用域中声明的变量?

转载 作者:太空狗 更新时间:2023-10-29 17:41:35 25 4
gpt4 key购买 nike

给定:

def f():
x = 0
def g():
h()
def h():
x += 1
print(x)
g()

>>> f()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 8, in f
File "<stdin>", line 4, in g
File "<stdin>", line 6, in h
UnboundLocalError: local variable 'x' referenced before assignment
>>>

如何让 h 看到 x 变量?

谢谢。

编辑

早该提一下,我用的是Python 2.7.3

最佳答案

你可以让x成为function attribute :

def f():
f.x = 0
def g():
h()
def h():
f.x += 1
print(f.x)
g()

此外,从 Python 3 开始,您可以使用 nonlocal关键字。

关于python:如何捕获在非全局祖先外部作用域中声明的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10270970/

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