全局变量和局部变量
- 定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
- 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。
total = 24
def f(x, y):
total = x + y
print("函数内:", total)
return total
f(1, 1)
print("函数外:", total)
输出:
函数内: 2
函数外: 24
global 和 nonlocal 关键字
当内部作用域想修改外部作用域的变量时,可以使用 global 关键字。示例如下:
total = 24
def f(x, y):
global total
total = x + y
print("函数内:", total)
return total
f(1, 1)
print("函数外:", total)
输出:
函数内: 2
函数外: 2
如果要修改嵌套作用域(外层非全局作用域)中的变量则需要 nonlocal 关键字。示例如下:
def outer():
num = 24
def inner():
nonlocal num
num = 8
print(num)
inner()
print(num)
outer()
输出:
8
8
|