摘要:變量作用域一般在函數(shù)體外定義的變量成為全局變量,在函數(shù)內部定義的變量稱為局部變量。
變量作用域
一般在函數(shù)體外定義的變量成為全局變量,在函數(shù)內部定義的變量稱為局部變量。
全局變量所有作用域都可用,局部變量只能在本函數(shù)可用,變量的使用順序是,局部變量 > 全局變量, 也就是說:優(yōu)先使用局部變量
那么問題來了, 如果想在函數(shù)內使用全局變量,或改變全局變量的值, 應該怎么做呢?
global關鍵字
為了解決函數(shù)內使用全局變量的問題,python增加了global關鍵字, 利用它的特性, 可以指定變量的作用域。
global關鍵字的作用:聲明變量var是全局的
代碼實例
實例1:
函數(shù)優(yōu)先使用局部變量
1
2
3
4
5
6
str = "global"
def func1():
str = "local" print(str)
func1()
print(str)
結果:
1
2
local
global
實例2:
在沒有局部變量的情況下, 使用全局變量
1
2
3
4
5
str = "global"
def func1():
print(str)
func1()
print(str)
結果:
1
2
global
global
實例3:
改變全局變量的值, 通過實例1可以看到, 函數(shù)內賦值并不能改變全局變量的值,所以需要global關鍵字
1
2
3
4
5
6
7
str = "global"
def func1():
global str str = "local" print(str)
func1()
print(str)
結果:
1
2
local
local
其他用法
你可以使用同一個global語句指定多個全局變量。
例如
1
global var1, var2, var3
特殊類型
字符串、數(shù)字類型是不能被在局部被修改的,除非使用global關鍵字,但是 列表,字典是可修改,但不能重新賦值,如果需要重新賦值,需要在函數(shù)內部使用global定義全局變量
代碼實例1:
1
2
3
4
5
6
list = ["global", "pythontab.com"]
def func1():
list.append("bbs.pythontab.com") print(list)
func1()
print(list)
結果:
1
2
["global", "pythontab.com", "bbs.pythontab.com"]
["global", "pythontab.com", "bbs.pythontab.com"]
發(fā)現(xiàn)上面的list并沒有使用global但是值卻改變了, 說明列表是可以在局部被修改的
代碼實例2:
1
2
3
4
5
6
list = ["global", "pythontab.com"]
def func1():
list = ["docs.pythontab.com"] print(list)
func1()
print(list)
結果:
1
2
["docs.pythontab.com"]
["global", "pythontab.com"]
局部變量賦值不能改變全局變量的值
代碼實例3:
1
2
3
4
5
6
7
list = ["global", "pythontab.com"]
def func1():
global list list = "docs.pythontab.com" print(list)
func1()
print(list)
結果:
1
2
docs.pythontab.com
docs.pythontab.com
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43273.html
摘要:本文將詳細分析的全局變量與局部變量,學過的人都知道,里面的全局變量是無法在里面去使用的,只有超全局變量才可以,那么會怎么處理全局變量與局部變量呢下面我們來看一下其實里面的全局變量,一般跟語言里面是一樣的微軟雅黑這里是局部變量打出,并且不會本文將詳細分析python的全局變量與局部變量,學過php的人都知道,php里面的全局變量是無法在function里面去使用的,只有超全局變量才可以,那么p...
摘要:本文將詳細分析的全局變量與局部變量,學過的人都知道,里面的全局變量是無法在里面去使用的,只有超全局變量才可以,那么會怎么處理全局變量與局部變量呢下面我們來看一下其實里面的全局變量,一般跟語言里面是一樣的微軟雅黑這里是局部變量打出,并且不會本文將詳細分析python的全局變量與局部變量,學過php的人都知道,php里面的全局變量是無法在function里面去使用的,只有超全局變量才可以,那么p...
摘要:一積累中如何快速查看包中的源碼最常用的大開發(fā)快捷鍵技巧將對象保存到文件中從文件中讀取對象中的用法的配置詳解和代碼的格式詳解格式化內容設置生成詳解注釋規(guī)范中設置內存調試的小知識單步執(zhí)行命令的區(qū)別的動態(tài)代理機制詳解內容有瑕疵,樓指正泛型繼承的幾 一、積累 1.JAVA Eclipse中如何快速查看jar包中 的class源碼 最常用的15大Eclipse開發(fā)快捷鍵技巧 Java將對象保存到...
摘要:一積累中如何快速查看包中的源碼最常用的大開發(fā)快捷鍵技巧將對象保存到文件中從文件中讀取對象中的用法的配置詳解和代碼的格式詳解格式化內容設置生成詳解注釋規(guī)范中設置內存調試的小知識單步執(zhí)行命令的區(qū)別的動態(tài)代理機制詳解內容有瑕疵,樓指正泛型繼承的幾 一、積累 1.JAVA Eclipse中如何快速查看jar包中 的class源碼 最常用的15大Eclipse開發(fā)快捷鍵技巧 Java將對象保存到...
閱讀 2112·2023-04-26 00:41
閱讀 1142·2021-09-24 10:34
閱讀 3573·2021-09-23 11:21
閱讀 4031·2021-09-22 15:06
閱讀 1557·2019-08-30 15:55
閱讀 897·2019-08-30 15:54
閱讀 1829·2019-08-30 15:48
閱讀 550·2019-08-29 13:58