Python全局变量和局部变量:
定义在函数内的为局部变量,在外部访问局部变量会出现未定义的错误
定义在函数外的变量称为全局变量,可以在整个函数范围内访问
当函数中存在与全局变量重名的变量,以函数中的局部变量为准
定义在函数中的局部变量的作用域只在函数中
# 定义全局变量 total
total = 0
def add(num1,num2):
# 定义局部变量 total
total = num1 + num2
# 输出局部变量
print(total)
add(4,6)
# 10
print(total)
# 0
在函数内部,如果想要修改外部变量时,可以使用 global 或 nonlocal 关键字
global 全局变量名:
在函数中使用全局变量,可以对全局变量进行修改。
注:如果只是在函数中使用了和全局变量相同的名字,则只是局部变量
# 定义全局变量 total
total = 0
def add(num1,num2):
# 使用 global 关键字声明全局变量 total
global total
total = num1 + num2
# 输出全局变量
print(total)
add(4,6)
# 10
# 输出全局变量
print(total)
# 10
nonlocal 嵌套作用域中的变量(嵌套函数,外层函数与内层函数之间):
修改嵌套函数之间的变量
# nonlocal 嵌套作用域中的变量(嵌套函数,外层函数与内层函数之间):
# 修改嵌套函数之间的变量
def func_out():
num = 5
def func_inner():
# 使用嵌套函数中的 num 值
nonlocal num
num = 10
print("最内部函数中的 num 的值:",num)
func_inner()
print("嵌套函数中的 num 的值:",num)
func_out()
# 最内部函数中的 num 的值: 10
# 嵌套函数中的 num 的值: 10
2020-02-12