(1)加上global x
,則函數(shù)內(nèi)部引用的x
就是全局x
了
x = 1
def test():
global x
x = 2
print(x)
test() #2
print(x) #2
(2)否則的話,變量名在等號左邊腰埂,且在變量域內(nèi)首次出現(xiàn),
就認(rèn)為是在定義局部變量蜈膨。
x = 1
def test():
x = 2
print(x)
test() #2
print(x) #1
(3)函數(shù)中如果定義了同名變量屿笼,就會覆蓋對全局變量的引用
在局部變量賦值前使用變量會報(bào)錯,即使外層有同名變量
UnboundLocalError: local variable 'x' referenced before assignment
x = 1
def test():
print(x) #Error
x = 2
print(x)
test()
print(x)