一、局部作用域
在函数内部创建的变量属于该函数的局部作用域,并且只能在该函数内部使用。
def func():
a = 0 # 局部变量
print("func a = ", a)
a = 'Hello Python' # a为全局变量
func()
print("函数外 a : ", a)
输出结果:
func a = 0
函数外 a : Hello Python
二、全局作用域
在 Python 代码主体中创建的变量是全局变量,属于全局作用域。全局变量在任何范围(全局和局部)中可用。
a = 1 # a为全局变量
def func():
a = 2 # 局部变量
a += 1
print("局部变量 a = ",a)
func()
print("全局变量 a = ",a)
输出结果:
局部变量 a = 3
全局变量 a = 1
三、global关键字
num = 1
def fun1():
global num # 需要使用 global 关键字声明
print(num)
num = 123
print(num)
fun1()
print(num)
输出结果:
1
123
123
四、nonlocal关键字
def outer():
num = 10
def inner():
nonlocal num # nonlocal关键字声明
num = 100
print(num)
inner()
print(num)
outer()
输出结果:
100
100