Python變數及函式巢狀 第七天

2021-10-01 09:30:55 字數 2858 閱讀 9938

1、全域性變數和區域性變數、上一級變數、

(1)全域性變數特點:頂格寫的,沒有縮排,在任意位置都可以呼叫。

(2)區域性變數特點:在任意乙個子程式(函式)裡定義的,只在該子程式(函式)內生效。

(3)可以在乙個程式中存在相同名稱的區域性變數和全域性變數,這樣的話,在**列印則輸出哪個變數。示例如下:

name =

"zhm"

def test()

: name =

"lll"

print

(name)

test()

print

(name)

#輸出結果:

lllzhm

(4)如果想直接在子程式裡修改全域性變數,應該加關鍵字global,如下:

name =

"zhm"

def test()

: global name

name =

"lll"

print

(name)

test()

print

(name)

#輸出結果:

llllll

(5)由於程式從上到下執行,所以上面的程式修改全域性變數後,下面引用的全域性變數也跟著修改。

name =

"zhm"

def test1()

: global name

name =

"lll"

print

(name)

def test2()

:print

(name)

test1()

test2()

#輸出結果:

llllll

換一下執行順序就會不一樣,如下:

name =

"zhm"

def test1()

: global name

name =

"lll"

print

(name)

def test2()

:print

(name)

test2()

test1()

#輸出結果:

zhmlll

(6)先找自己的作用域(偷懶方法:可以看空格),沒有引用全域性;修改全域性則用global;如果全域性是可變型別,可以直接使用對應方法,對內部元素進行操作。如下:

name =

["ooo"

,"lll"

]def test()

: global name

name.

("zhm"

)print

(name)

test()

#輸出結果:

['ooo'

,'lll'

,'zhm'

]

2、函式巢狀

(1)**預設執行順序:從上到下

巢狀函式執行順序:先執行外迴圈,再執行內迴圈

def outer()

: def inner()

:print

('inner'

)print

('outer'

)inner()

outer()

print

("ooo"

)#輸出結果:

outer

inner

ooo

備註:但是好像為了避免不必要的麻煩,一般直接呼叫,不用函式巢狀

def inner()

:print

('inner'

)def outer()

:inner()

print

('outer'

)outer()

#輸出結果:

inner

outer

(2)先定義後執行,未定義執行會報錯。

def test1()

:print

("test1"

)test2

() #由於在這之前未定義過test2()

test1()

def test2()

:print

("test2"

)#輸出結果:

報錯

3、關於函式名

(1)函式名可以進行賦值

def test()

:print

("123"

)new_test = test

new_test()

#輸出結果:

123

4、閉包函式特點

1、是巢狀函式

2、返回乙個呼叫外部變數的函式物件

舉例如下:

def outer()

: name=

"python"

def inner()

:print

(name)

print

(inner.__closure__)

return inner

inn =

outer()

inn(

)#輸出結果:

(: str object at 0x0000021b748f5670

>,)

python

Sass變數及巢狀

注意 變數可以在css規則塊定義之外存在。如下例子 n color f90 n 編譯後 n n color這個變數定義在了規則塊外邊,所以在這個樣式表中都可以像n 規則塊那樣引用它。width這個變數定義在了n 的規則塊內,所以它只能在n 規則塊 內使用。這意味著是你可以在樣式表的其他地方定義和使用...

python 函式巢狀及作用域

函式可以巢狀嗎?當然可以 我們可以看到,外部函式outer func 的函式體中巢狀了乙個函式inner func 並且outer func 體中 還呼叫了內部函式inner func 所以每當呼叫outer func 的時候,都會呼叫一次inner func 我 們來看一下列印結果 我們可以看到,...

python全域性變數 區域性變數 巢狀函式

全域性變數在呼叫的function中是不允許被直接修改的。修改方法 在全域性變數前加global 關鍵字 如 修改text這個全域性變數,方法 global text 對於在呼叫函式中修改區域性變數的,但輸出區域性變數還是原值的原因 是函式在棧中建立了乙個與全域性變數同名的區域性變數,值作用於當前修...