gpt4 book ai didi

python - 函数内的函数 - 全局和非局部作用域

转载 作者:行者123 更新时间:2023-11-28 17:42:15 28 4
gpt4 key购买 nike

我正在尝试使用全局和非本地范围的以下代码。以下代码段可以正常工作。

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 ?而不是非本地 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

所以decrement中的n也指的是全局变量。

关于python - 函数内的函数 - 全局和非局部作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22584969/

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