gpt4 book ai didi

python - 通过局部空间中的函数更改局部空间中的值

转载 作者:行者123 更新时间:2023-12-04 16:58:46 24 4
gpt4 key购买 nike

这是一个示例代码:

def foo():
def bar():
foobar = 'foobaz'

foobar = 'foobar'
print foobar
bar()
print foobar

foo()

我想改变变量 foobarfoo按功能 bar .上面的代码将不起作用,因为 foobarbarfoobar 位于单独的命名空间中在 foo .一个简单的解决方法是创建一个全局 foobar并同时拥有 foobar可以访问它,但我希望有更简单的解决方法。

最佳答案

在 python 3.x 上你可以使用 nonlocal对于 python 2.x 尝试使用函数属性:

def foo():
def bar():
foo.foobar = 'foobaz' #change the function attribute

foo.foobar = 'foobar' #declare as function attribute
print foo.foobar
bar()
print foo.foobar
foo()

输出:
foobar
foobaz

关于python - 通过局部空间中的函数更改局部空间中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13212814/

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