了解python中全局作用域中定义的变量的作用域


num = 0
def func():
print(num)
func()

上面的函数应该打印变量num所持有的值,它可以工作。由此,我假设func可以访问num。但当我试图在函数内更改num的值时,它会给我一个错误。UnboundLocalError: local variable 'num' referenced before assignment

num = 0
def func():
print(num)
num += 1
func()

为什么会发生这种情况?

num变量不在函数的本地作用域中,因此不能在函数内部修改它,因为该变量包含不可变的数据类型(int(。您可以利用全局关键字或在函数中定义变量。num = 0 def func(): global num print(num) num += 1 func()

最新更新