第八章 函数-5
8.5 全局变量和局部变量
局部变量是在函数内部定义的变量,只能在函数内部使用,用作临时保存函数内部需要使用的数据,函数执行结束后,函数内部的局部变量,会被系统回收。因此在不同的函数内可以定义相同的名字的局部变量,彼此之间不会产生影响。全局变量是在函数外部定义的变量(没有定义在某一个函数内),所有函数内部都可以使用这个变量。请看下面例子:
total = 10 # 这是一个全局变量
def sum(arg1, arg2):
# 返回2个参数的和
total = arg1 + arg2 # total在这里是局部变量.
print("函数内是局部变量 : ", total)
return total
# 调用sum函数
sum(10, 20)
print("函数外是全局变量 : ", total)
运行程序输出结果为:
函数内是局部变量 : 30
函数外是全局变量 : 0
但是存在一个问题,函数内部怎么使用全局变量呢?答案:函数内部加一行代码说明使用全局变量,上面程序可以改写成下述形式,实现函数内部访问全局变量total。
total = 20 # 这是一个全局变量
def sum(arg1, arg2):
# 返回2个参数的和
global total
total = arg1 + arg2 # total在这里是全局变量.
print("函数内是全局变量 : ", total)
return total
# 调用sum函数
print("调用函数前,函数外是全局变量 : ", total)
sum(20, 30)
print("调用函数后,函数外是全局变量", total)
运行程序输出结果为:
调用函数前,函数外是全局变量 : 20
函数内是全局变量 : 50
调用函数后,函数外是全局变量 50

