case2:局部变量与全局变量同名
x="i am global var" def fun(): x=100 print(x) fun() print(x) ***********output************ 100 i am global var >>>即便同名,函数内访问的变量就是函数内定义的局部var,函数外访问的就是全局var。跟其他语言一致,同名局部变量会屏蔽全局变量。 如果要在函数内fun()定义全局var? 在函数体内声明为全局var
case3: x="i am global var" def fun(): global x x=100 print(x) fun() print(x) **********output****** 100 100 >>> >>>此时全局var x值被更新,在函数内部也可更改全局变量的值。
如果直接在函数内声明全局变量global var,要在函数外访问该变量,前提是必须先执行一次函数调用,看下面case:
def fun(): global x x="i am global var" print(x) print(x) fun() print(x) *******output************* Traceback (most recent call last): File "D:/Program Files/Python36/var.py", line 6, in <module> print(x) NameError: name 'x' is not defined >>> def fun(): global x x="i am global var" print(x) fun() #x = 100 print(x) **********output************ i am global var i am global var >>> def fun(): global x x="i am global var" print(x) fun() x = 100 print(x) *******output********* i am global var 100 >>>