Python 中的 global 標(biāo)識對變量作用域的影響
global 標(biāo)識用于在函數(shù)內(nèi)部,修改全局變量的值。
我們可以通過以下規(guī)則,來判定一個變量到底是在全局作用域還是局部作用域:
- 變量定義在全局作用域,那就是全局變量。
- 變量在函數(shù)中定義,并且加了 global 標(biāo)識,就是全局變量。
- 如果變量在函數(shù)中僅做了定義,那么就是局部變量。
- 如果變量在函數(shù)中僅僅是使用,那么就是全局變量。
下面的示例,有助于理解上述規(guī)則:
def cook(): global dumplings dumplings = '10' # 全局變量 print('cook():' + dumplings) def cook2(): dumplings = '22' # 局部變量 print('cook2():' + dumplings) def cook3(): print('cook3():' + dumplings) # 全局變量 dumplings = 3 # 全局變量 cook() print('global:' + dumplings) cook3() cook2()
運(yùn)行結(jié)果:
cook():10 global:10 cook3():10 cook2():22
注意:在函數(shù)中,如果在變量定義之前先使用它,就會拋錯:
def cook(): print(dumplings) dumplings = 'local' dumplings = 'global' cook()
運(yùn)行結(jié)果:
UnboundLocalError: local variable 'dumplings' referenced before assignment
因為在函數(shù)中,存在對 dumplings 的定義賦值語句,所以被認(rèn)為是局部變量。所以在定義之前,先訪問這個局部變量就會拋錯。
總結(jié)
以上所述是小編給大家介紹的Python 中的 global 標(biāo)識對變量作用域的影響,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
詳解Numpy數(shù)組轉(zhuǎn)置的三種方法T、transpose、swapaxes
這篇文章主要介紹了詳解Numpy數(shù)組轉(zhuǎn)置的三種方法T、transpose、swapaxes,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05解決python測試opencv時imread導(dǎo)致的錯誤問題
今天小編就為大家分享一篇解決python測試opencv時imread導(dǎo)致的錯誤問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01