total=0 # 这是一个全局变量
可写函数说明
def sum(arg1, arg2):
# 返回2个参数的和."
global total
total= arg1 + arg2 # total在这里是局部变量.
print("调用函数1查看total : ", total)
return
def kong2():
print("调用函数2查看total :: ", total)
return
def kong3(arg_11,arg_12):
global total
total=arg_11+arg_12
print(“调用函数3查看total :”, total)
return
调用sum函数
print("函数外是全局变量 : ", total) #首先输出全局变量total=0
sum(10, 20) #调用函数1,将全局变量覆盖total=30
print("函数外是全局变量 : ", total) #此时输出为全局变量值total=30
sum(11,11) #调用函数1,产生的结果会将全局变量覆盖total=22
print("函数外是全局变量 : ", total)#此时输出为全局变量值total=22
kong2()##调用函数2,查看全局变量,此时输出还是全局变量值total=22
kong3(2,3)##调用函数3,产生的结果会将全局变量覆盖total=5
上面为显示结果,
总结:当全局变量和局部变量一样时,在局部变量前面加上标志符global,表示局部命名空间没有此变量,需要到全局命名空间中去寻找,会发生一系列变量值被覆盖现象