s = "我是全局变量"
def glo_and_non():
def do_local ():
s = "我是局部变量"
print ("1 "+ s) #在do_local中声明了一个局部变量s
def do_nonlocal():
nonlocal s #在glo_and_non中声明的一个变量
s = "我不是局部,也不是全局"
def do_global ():
global s #声明的一个全局变量
s = "我是最靓的仔-全局变量"
print ("4 "+s)
s = "原值"
do_local ()#运行do_local方法
print("2 局部变量赋值后:",s)
do_nonlocal()#运行do_nonlocal方法
print("3 nonlocal变量赋值后: ", s)#因为运行了do_nonlocal方法使s变量成了"我不是局部,也不是全局"
do_global()#运行do_global方法
print("5 全局变量赋值后:", s)#因为还是在glo_and_non方法内,所有变量s还是"我不是局部,也不是全局"
glo_and_non()
print("6 全局变量: ", s)#全局变量s是"我是最靓的仔-全局变量"