python中global的作用域


#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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM