像以下内容的Python习语是什么:
def F():
waitfor = 5
def f2(x):
global2you waitfor # <<<<<<< SOMETHING FROM ENCLOSING_BLOCKS
waitfor += 1
return waitfor
print "waitfor, before", waitfor, "and after", f2("ABCD")
F()
我不愿意使用global waitfor
,因为我不希望与其他开发人员的变量名称发生任何名称冲突。我坚持使用Python 2.6.9。感谢。
答案 0 :(得分:3)
在Python 3中,您可以使用nonlocal
关键字,它可以彻底解决此问题。
然而,在Python 2中,你必须通过将waitfor
转换为一个元素的列表来诉诸于穷人的参考&#34;
def F():
waitfor = [5]
def f2(x):
waitfor[0] += 1
return waitfor[0]
print "waitfor, before", waitfor[0], "and after", f2("ABCD")