朋友們,如需轉載請標明出處:https://blog.csdn.net/jiangjunshow
聲明:在人工智能技術教學期間,不少學生向我提一些python相關的問題,所以為了讓同學們掌握更多擴展知識更好地理解AI技術,我讓助理負責分享這套python系列教程,希望能幫到大家!由於這套python教程不是由我所寫,所以不如我的AI技術教學風趣幽默,學起來比較枯燥;但它的知識點還是講到位的了,也值得閱讀!想要學習AI技術的同學可以點擊跳轉到我的教學網站。PS:看不懂本篇文章的同學請先看前面的文章,循序漸進每天學一點就不會覺得難了!
global語句是Python中唯一看起來有些像聲明語句的語句。但是,它並不是一個類型或大小的聲明,它是一個命名空間的聲明。它告訴Python函數打算生成一個或多個全局變量名。也就是說,存在於整個模塊內部作用域(命名空間)的變量名:
X = 88 # Global X
def func():
global X
X = 99 # Global X: outside def
func()
print(X) # Prints 99
這個例子中我們增加了一個global聲明,以便在def之內的X能夠引用在def之外的X。
下面再來看一個例子
y,z = 1,2 # Global variables in module
def all_global():
global x # Declare globals assigned
x = y + z # No need to declare y,z: LEGB rule
這裡,x、y和z都是all_global函數內的全局變量。y和z是全局變量,因為它們不是在函數內賦值的;x是全局變量,因為它通過global語句使自己明確地映射到了模塊的作用域。如果不使用global語句的話,x將會由於賦值而被認為是本地變量。
y和z並沒有進行global聲明。Python的LEGB查找法則將會自動從模塊中找到它們。此外,注意x在函數運行前可能並不存在。如果這樣的話,函數內的賦值語句將自動在模塊中創建x這個變量。