本文主要為大家簡述Python作用域基礎(chǔ)概念,從而明白什么是python 全局變量和局部變量。
什么是python作用域
作用域簡單說就是一個變量的命名空間。代碼中變量被賦值的位置,就決定了哪些范圍的對象可以訪問這個變量,這個范圍就是命名空間。python賦值時生成了變量名,當(dāng)然作用域也包括在內(nèi)。
什么是全局變量和局部變量
在函數(shù)外,一段代碼最始開所賦值的變量,它可以被多個函數(shù)引用,這就是全局變量;
在函數(shù)內(nèi)定義的變量名,只能被函數(shù)內(nèi)部引用,不能在函數(shù)外引用這個變量名,這個變量的作用域就是局部的,也叫它為局部變量;
如果函數(shù)內(nèi)的變量名與函數(shù)外的變量名相同,也不會發(fā)生沖突。好比下面這種情況:
x = 100
def func():
x = 55
x = 100這個賦值語句所創(chuàng)建的變量X,作用域為全局變量;
x = 55這個賦值語句所創(chuàng)建的變量X,它的作用域則為局部變量,只能在函數(shù)func()內(nèi)使用。
盡管這兩個變量名是相同的,但它的作用域為它們做了區(qū)分。作用域在某種程度上也可以起到防止程序中變量名沖突的作用,但如果做為玩蛇網(wǎng)python初學(xué)者來說,盡量避免這種情況發(fā)生比較好。
總結(jié)
1、變量的作用域由代碼被賦值的位置所決定
2、變量可以在3個不同地方,對應(yīng)3種不同作用域:
(一)一個變量在函數(shù)內(nèi)賦值,它的作用范圍被定位在函數(shù)之內(nèi)
(二)當(dāng)變量是在一個嵌套的函數(shù)中賦值時,對于這個嵌套的函數(shù)來說,這個變量是非本地的
(三)變量在函數(shù)外賦值,它作用域就是當(dāng)前整個文件的全局變量
知道了Pyhton作用域、全局變量、局部變量之后,就可以學(xué)習(xí)能修改重新定義全局變量的global python 全局變量了。