gpt4 book ai didi

python - Python < 3 中是否有类似 'nonlocal' 的内容?

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

<分区>

我得到了一段这样的代码:

foo = None

def outer():
global foo
foo = 0

def make_id():
global foo
foo += 1
return foo


id1 = make_id() # id = 1
id2 = make_id() # id = 2
id3 = make_id() # ...

我觉得在最外层的作用域中定义 foo 很难看,我宁愿只在 outer 函数中定义它。据我正确理解,在 Python3 中,这是由 nonlocal 完成的。对于我想要的东西,有更好的方法吗?我更愿意在 outer 中声明和分配 foo 并且可能在 inner 中声明和分配 global :

def outer():
foo = 0

def make_id():
global foo
foo += 1 # (A)
return foo

id1 = make_id() # id = 1
id2 = make_id() # id = 2
id3 = make_id() # ...

(A) 不起作用,foo 似乎在最外层范围内搜索。

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