我正在尝试在全局和非本地范围内使用以下代码。以下代码段可以解决所有问题。
def countdown(start):
n = start
def display():
print('--> %d' % n)
def decrement():
nonlocal n ##using python3
n -= 1
while n > 0:
display()
decrement()
countdown(10)
倒数计时(10)
但是我为什么不能使用全局n?而不是非本地的 那给了我
UnboundLocalError: local variable 'n' referenced before assignment
这是片段
def countdown(start):
global n ##defined it global
n = start
def display():
print('--> %d' % n)
def decrement():
##no nonlocal varibale here
n -= 1
while n > 0:
display()
decrement()
倒数计时(10)
全局声明不会自动应用于嵌套函数。您需要另一个声明:
def decrement():
global n
n -= 1
所以n
indecrement
也指全局变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句