面向过程编程
变量
作用域
global关键字
在函数中不能任意修改全局变量,如果确实需要修改,需要增加global关键字。否则Python解释器会默认该变量是局部变量,但发现没有声明,将会报错。
MAX_VALUE = 1
def test():
#不加global这一行的话会报错
global MAX_VALUE
MAX_VALUE += 1
print(MAX_VALUE)
if __name__ == '__main__':
test()
nonlocal关键字
类似的,对于嵌套函数来说,内部函数可以访问外部函数定义的变量,但是无法修改,若要修改,必须加上nonlocal这个关键字:
def outer():
x = "local"
def inner():
nonlocal x # nonlocal关键字表示这里的x就是外部函数outer定义的变量x
x = 'nonlocal'
print("inner:", x)
inner()
print("outer:", x)
outer()