Python中的全局和局部变量

2024-04-29 08:18:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我在学Python。一本关于Python 3的书说以下代码应该可以正常工作:

def funky():
    print(myvar)
    myvar = 20
    print(myvar)

myvar = 10
funky()

但是当我在Python3.3中运行它时,我得到了

UnboundLocalError: local variable 'myvar' referenced before assignment

错误。我的理解是,funky中的第一个print(myvar)应该是10,因为它是一个全局变量。第二个print(myvar)应该是20,因为局部myvar被定义为20。这是怎么回事?请帮忙澄清。


Tags: 代码定义localdef错误局部variablefunky