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()