问题补充说明:为什么打印出来是6 6 而不是6 5呢?
你直接定义的抄localvar是个全局变量;而test()这个函数中会定甚员确引陆义(或重绑定)全局变量localvar为6。
可以衡容李控经神乱载阿他种这样理解:函数是一个盒360问答子,所有函数体里定义的变量都只能在盒子里存在。但是没火新功举global关键字让函数可以定义能拿到盒子外的变量(所以,如果变量名字相同,后来的赋值操作就会覆盖之前的值,这和你在盒子外面的行为是一样的)。
>>>defbox():
localvar=6
>>>defbox_with_a_global_var():
globalglobalvar
gl调课载谓做皇来陈obalvar=6
>>>localvar=5
>>>box()
>>>localva二九r
5
>>>box_with_a_global_var()
>>>globalvar=5
>>>glob静极完三欢背频更五鲜老alvar
5