python函式全域性變數與區域性變數

2021-08-18 16:52:57 字數 3114 閱讀 6048

區域性變數:在函式中定義的變數一般只能在該函式內部使用,這些只能在程式的特定部分使用

全域性變數:在乙個檔案頂部定義的變數可以供該檔案中任意函式呼叫

1優先讀取區域性變數,能讀取全域性變數,無法對全域性變數重新賦值

name='

全域性變數

'def

change_name():

name='

區域性變數

'print('

change_name

',name)

change_name()

print(name)

輸出:change_name 區域性變數

全域性變數

2global語句可以把區域性變數強制生成全域性變數,如果函式沒有被呼叫的話 global是沒有用的

name = "

xixi

"def

s1():

global name #

已經宣告,name就是全域性的那個變數xixi

name = "

yueyue"#

修改全域性的變數為yueyue

print('

列印出'

, name)

defs2():

print('

列印出'

, name)

s1()

s2()

輸出:列印出 yueyue

列印出 yueyue

3對於可變型別,可以對內部元素進行操作

name = ["

wangwang

","shishi"]

defs1():

'yaoyao')

print('

列印出'

, name)

s1()

輸出:列印出 ['wangwang', 'shishi', 'yaoyao']

######## 全域性變數變數名大寫

######## 區域性變數變數名小寫

函式跟函式之間巢狀變數

name = '

全域性變數'#

第一步執行

defs1():

name = "

巢狀1"

#第三步執行

print(name) #

第四步執行(輸出第一行)

defs2():

name = "

巢狀2"

#第六步執行

print(name) #

第七步執行(輸出第二行)

defs3():

name = '

巢狀3'

#第十步執行

print(name) #

第十一步執行(輸出第四行)

print(name) #

第八步執行(輸出第三行)

s3() #

第九步執行

s2() #

第五步執行

print(name) #

第十二步執行(輸出第五行)

s1()

#第二步執行

輸出:巢狀1

巢狀2巢狀2

巢狀3巢狀1

nonlocal指定上一級變數,如果沒有就繼續往上直到找到為止

name = "

全域性變數

"def

s1():

name = "西西"

defss1():

nonlocal name

#把上一級變數name=西西改為name=月月

name = "月月"

ss1()

print

(name)

print

(name)

s1()

print(name)

輸出:全域性變數

月月全域性變數

慢性拆分詳解

name = '

全域性變數'#

第1步執行

def s1(): #

第2步執行

name = "

巢狀1"

#第4.1步執行

print(name) #

第4.2步執行(輸出第二行)

def s2(): #

第4.3步執行

name = "

巢狀2"

#第4.4.1步執行

print(name) #

第4.4.2步執行(輸出第三行)

def s3(): #

第4.4.3步執行

name = '

巢狀3'

#第4.4.5.1步執行執行

print(name) #

第4.4.5.2步執行(輸出第五行)

print(name) #

第4.4.4步執行(輸出第四行)

s3() #

第第4.4.5步執行步執行

s2() #

第4.4步執行

print(name) #

第4.5步執行(輸出第六行)

print(name) #

第3步執行(輸出第一行)

s1() #

第4步執行

print(name) #

第5步執行(輸出第七行)

輸出:全域性變數

巢狀1巢狀2

巢狀2巢狀3

巢狀1全域性變數

python 函式 區域性變數與全域性變數

本節知識點 程序啟動獲得資源 定義變數,定義函式,占用資源 函式內部定義的變數是區域性變數 在當前程序作用範圍內的變數是全域性的變數 例子 租房市場,單間小房與客廳,小板櫈的使用許可權 區域性變數 全域性變數 例子當前的租房市場 單間800元 月,一般是三室一廳的某乙個室,臥室 通過來加深理解 na...

python 函式區域性變數與全域性變數

區域性變數是在某個函式中宣告的,只能在該函式中呼叫它,如果試圖在超出範圍的地方呼叫,程式就爆掉了 如果在函式內部定義與某個全域性變數一樣名稱的區域性變數,就可能會導致意外的效果,可能不是你期望的。因此不建議這樣使用,這樣會使得程式很不健全 全域性變數是在整個py檔案中宣告,全域性範圍內都可以訪問 注...

python 函式 區域性變數與全域性變數

函式優點 重用 保持一致性 可擴充套件性 import time def logger 時間年 月 日 分 time format y m d x time current time.strftime time format 開啟檔案a.txt,追加end action with open a.tx...