1,作用域:通俗说是变量生效的区域,可分为全局作用域和局部作用域
全局作用域:程序执行时创建,结束时销毁,全局作用域定义的变量为全局变量
局部作用域:在函数内部,外部无法访问,函数里面的定义的变量为局部变量,函数调用时创建,结束时销毁
a = 10
def fn():
print(a)
fn()
# 输出为10
在函数内部可以访问全局变量
a = 10
def fn():
a = 20
print(a)
fn()
# 输出为 20
在函数体内部,局部变量优先
def fn():
a = 10
fn()
print(a)
# 输出报错
局部变量只在函数体内生效,函数外无法访问
def fn1():
a = 20
def fn2():
print(a)
fn2()
fn1()
# 输出为20
fn2函数在fn1函数里,因此fn2可以访问到fn1中的变量
2,在函数内部修改全局变量
a = 10
def b():
global a # 声明a是全局变量
a = 20 # 修改全局变量a
b()
print(a)
# 输出为20