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是"我是最靓的仔-全局变量"