#python引用變量的順序: 當前作用域局部變量->外層作用域變量->當前模塊中的全局變量->python內置變量 。 ''' a=30 聲明為全局變量 a=20 為test()函數局部變量,並且對這個同名的變量沒有修改 可以使用這個局部變量,引用的順序為:當前作用域局部變量 ''' a=30 def test(): a=20 print(a) test() print(a)
打印結果
20
30
''' a=30 第一行定義了一個全局變量 在test1() 函數中程序會因為“如果內部函數有引用外部函數的同名變量或者全局變量,並且對這個變量有修改.那么python會認為它是一個局部變量, 又因為函數中沒有a的定義和賦值,所以報錯 a=a+20,a是個局部變量, ''' a=30 def test1(): a=a+20 print(a) test1() print(a)
報錯信息:
a=a+20
UnboundLocalError: local variable 'a' referenced before assignment
''' 聲明全局變量,如果在局部要對全局變量修改,需要在局部也要先聲明該全局變量: ''' a=30 def test2(): global a a=a+20 print(a) test2() print(a)
打印結果
50
50