Python,将变量声明为来自封闭块
Python的习语是什么Python,将变量声明为来自封闭块,python,Python,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
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()
def():
等待=5
def f2(x):
global2waitfor#在Python3中,可以使用关键字,这很好地解决了这个问题
然而,在Python 2中,您必须求助于“穷人的引用”,将waitfor
转换为一个元素列表:
def F():
waitfor = [5]
def f2(x):
waitfor[0] += 1
return waitfor[0]
print "waitfor, before", waitfor[0], "and after", f2("ABCD")
在Python3中,您可以使用关键字,它干净地解决了这个问题
然而,在Python 2中,您必须求助于“穷人的引用”,将waitfor
转换为一个元素列表:
def F():
waitfor = [5]
def f2(x):
waitfor[0] += 1
return waitfor[0]
print "waitfor, before", waitfor[0], "and after", f2("ABCD")
在Python3中,您可以使用关键字,它干净地解决了这个问题
然而,在Python 2中,您必须求助于“穷人的引用”,将waitfor
转换为一个元素列表:
def F():
waitfor = [5]
def f2(x):
waitfor[0] += 1
return waitfor[0]
print "waitfor, before", waitfor[0], "and after", f2("ABCD")
在Python3中,您可以使用关键字,它干净地解决了这个问题
然而,在Python 2中,您必须求助于“穷人的引用”,将waitfor
转换为一个元素列表:
def F():
waitfor = [5]
def f2(x):
waitfor[0] += 1
return waitfor[0]
print "waitfor, before", waitfor[0], "and after", f2("ABCD")
观察:如果您返回waitfor
的值,您真的需要更新F
中定义的变量吗?@chepner这只是为了说明我的问题观察:如果您返回waitfor
的值,您真的需要更新F
中定义的变量吗?@chepner这只是为了说明我的观察结果:如果您返回waitfor
的值,你真的需要更新F
中定义的变量吗?@chepner这只是为了说明我的问题一个观察:如果你返回waitfor
的值,你真的需要更新F
中定义的变量吗?@chepner这只是为了说明我的问题