1.局部作用域
在函数内部创建的变量属于该函数的局部作用域,并且只能在该函数内部使用.
例如:
def myage():
x = 20
print(x)
myage()
注意:局部作用域不能使用其他作用域内的变量。
2.全局作用域
在 Python 代码主体中创建的变量是全局变量,属于全局作用域。
全局变量在任何范围(全局和局部)中可用。
def spam():
print(eggs)
eggs = 42
spam()
print(eggs)
3.Global 关键字
如果需要在一个函数内修改全局变量,就使用global语句。
def spam():
global eggs
eggs = "spam"
eggs = "global"
spam()
print(eggs)
4.nonlocal关键字
1、nonlocal声明的变量不是局部变量或全局变量,而是外部嵌套函数中的变量。
2、nonlocal定义后的变量只会在调用的子函数中发挥作用。
x = 1
def func():
x = 2
def subfunc():
nonlocal x
x = x + 1
print('subfunc内打印的值:%d' % x)
return x
print('func内打印的值:%d' % x)
return subfunc
func()
print('func外打印的值:%d' % x)