变量作用域
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
>>>