国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

【Python系列】5. 函數(shù)與變量作用域

2021-07-14 16:20 作者:doubleyong  | 我要投稿

一、函數(shù)

函數(shù):有一定功能的代碼塊

函數(shù)作用:提高利用率(重復(fù)使用)、封裝(模塊化)


語法

? ? def 函數(shù)名(參數(shù)列表):

? ? ? ? ?函數(shù)體(代碼塊)


調(diào)用

? ? ?函數(shù)名(參數(shù))


分類

? ? ?有無參數(shù):有參函數(shù)、無參函數(shù)

? ? ?有無返回值:有返回值函數(shù)、 無返回值函數(shù)


參數(shù)

? ? ? ? 形參:定義函數(shù)時(shí)申明的參數(shù)

? ? ? ? 實(shí)參:調(diào)用函數(shù)時(shí)傳遞的參數(shù)


? ? ? ? 注:形參相當(dāng)于復(fù)制實(shí)參,引用類型的復(fù)制,形參改變了,實(shí)參也會(huì)變

? ? ? ? ?值類型的復(fù)制,形參不會(huì)改變實(shí)參


參數(shù)參型

默認(rèn)參數(shù)(形參后賦值,這個(gè)值稱為默認(rèn)值)

? ? ? ?默認(rèn)值,要在必須參數(shù)的后面


必須參數(shù)(沒有設(shè)置默認(rèn)值的就是必須參數(shù))


關(guān)鍵字參數(shù)(指定形參的名字來傳遞值)

student(age=18,name='doubleyong')


不定長參數(shù) (*變量名, *后面的變量是元組類型)

注:不定長的參數(shù)也必須放到參數(shù)的后面

def student(name, *info)? ? # 變量info 是元組類型


返回值

return 值

函數(shù)沒有return 時(shí), 返回None

注:return 可以返回多個(gè)值,并且將多個(gè)返回值,裝到一個(gè)元組中


? def add(num1,num2):

? ? ? return num1,num2,num1+num2

? result = add(5,3)

? print(result)? ? # result 為元組類型,結(jié)果為:(5,3,8)



二、變量作用域

Python 中,程序的變量并不是在哪個(gè)位置都可以訪問的,訪問權(quán)限決定于這個(gè)變量是在哪里賦值的。


變量的作用域決定了在哪一部分程序可以訪問哪個(gè)特定的變量名稱。Python的作用域一共有4種,分別是:

L (Local) 局部作用域

E (Enclosing) 閉包函數(shù)外的函數(shù)中

G (Global) 全局作用域

B (Built-in) 內(nèi)建作用域


以 L –> E –> G –>B 的規(guī)則查找,即:在局部找不到,便會(huì)去局部外的局部找(例如閉包),再找不到就會(huì)去全局找,再者去內(nèi)建中找。



全局變量? ?or? ?局部變量

python中,只有模塊(module)、類(class)、函數(shù)(def、lambda),會(huì)產(chǎn)生新的作用域


if(True):

? ? ?x = 5

print(x)

注:python中, 直接寫if結(jié)構(gòu)它是不會(huì)產(chǎn)生作用域的,所以x打印出來是5.


函數(shù)里定義的是局部變量,局部變量,當(dāng)前函數(shù)可以訪問

函數(shù)外定義是全局變量, 全局變量,所有的函數(shù)都可以訪問,不能修改,要修改,必須在前面加global


x = 5

def change():

? ? global x

? ? x=10

change()

print(x)


函數(shù)里,要修改全局變量,變量前加global

如果要修改不是自己的變量,加nonlocal,它是向上找,最先找到誰就是誰。

nonlocal, 不能找到全局的變量


y = 5

def a():

? ? y = 10

? ? def b():

? ? ? ? # y=11

? ? ? ? def c():

? ? ? ? ? ? nonlocal y

? ? ? ? ? ? y=18

? ? ? ? ? ? print('c函數(shù)中的y',y)

? ? ? ? c()

? ? ? ? print('b函數(shù)中的y',y)

? ? b()

? ? print('a函數(shù)中的y',y)


a()

print('全局中的',y)


注: nolocal會(huì)向上找,找到上級的變量后,進(jìn)行修改,但是不會(huì)找到全局變量,只限在def內(nèi)定義的變量

【Python系列】5. 函數(shù)與變量作用域的評論 (共 條)

分享到微博請遵守國家法律
抚远县| 山丹县| 合肥市| 新乐市| 抚顺市| 长子县| 高尔夫| 尉犁县| 宜川县| 宣威市| 甘孜县| 清涧县| 海口市| 梁山县| 曲阳县| 白朗县| 秭归县| 庄河市| 石城县| 神池县| 金川县| 舟山市| 天水市| 上蔡县| 太原市| 厦门市| 茌平县| 襄城县| 克什克腾旗| 钟山县| 溆浦县| 湾仔区| 辽阳市| 东城区| 长白| 大悟县| 宁陕县| 西乌珠穆沁旗| 西安市| 白山市| 长治县|