溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python函數(shù)詳解

發(fā)布時(shí)間:2020-07-01 18:32:09 來源:網(wǎng)絡(luò) 閱讀:792 作者:高好亮 欄目:編程語言

結(jié)構(gòu):

    def  函數(shù)名():

        函數(shù)體


執(zhí)行:

    函數(shù)名()


返回值:

    return

    一,函數(shù)中,遇到return終止函數(shù)

    二,返回值,返回給了函數(shù)的調(diào)用者:函數(shù)名()

    return單個(gè)值,返回單個(gè)值

    return多個(gè)值,返回一個(gè)由這多個(gè)值組成的元祖

    

函數(shù)傳參:

實(shí)參角度:

    位置參數(shù):從前至后一一對(duì)應(yīng)

    關(guān)鍵字參數(shù):一一對(duì)應(yīng),不用按照順序

    混合參數(shù):關(guān)鍵字參數(shù)一定要在位置參數(shù)的后面

形參角度:

    位置參數(shù):按照順序,一一對(duì)應(yīng)

    默認(rèn)參數(shù):如果不傳參則使用默認(rèn)參數(shù),傳參則使用傳入?yún)?shù),常用的會(huì)設(shè)置默認(rèn)參數(shù)

動(dòng)態(tài)參數(shù)(萬能參數(shù)):

    *args接收全部位置參數(shù),聚合為元祖 **kwargs接收全部關(guān)鍵字參數(shù),聚合為字典

    函數(shù)調(diào)用時(shí),可迭代對(duì)象前加*,代表函數(shù)打散

    *args,默認(rèn)參數(shù),**kwargs順序

函數(shù)的進(jìn)階:

    名稱空間:存儲(chǔ)的是全局(py文件)的變量與值的對(duì)應(yīng)關(guān)系

    臨時(shí)名稱空間:當(dāng)函數(shù)執(zhí)行時(shí),會(huì)在內(nèi)存中臨時(shí)開辟一個(gè)空間,此空間記錄函數(shù)中變量與值的對(duì)應(yīng)關(guān)系,隨著函數(shù)的結(jié)束,臨時(shí)名稱空間而關(guān)閉

    解釋:

Python代碼運(yùn)行的時(shí)候遇到函數(shù)是怎么做的,從Python解釋器開始執(zhí)行之后,就在內(nèi)存中開辟里一個(gè)空間,每當(dāng)遇到一個(gè)變量的時(shí)候,就把變量名和值之間對(duì)應(yīng)的關(guān)系記錄下來,但是當(dāng)遇到函數(shù)定義的時(shí)候,解釋器只是象征性的將函數(shù)名讀如內(nèi)存,表示知道這個(gè)函數(shù)存在了,至于函數(shù)內(nèi)部的變量和邏輯,解釋器根本不關(guān)心。

  等執(zhí)行到函數(shù)調(diào)用的時(shí)候,Python解釋器會(huì)再開辟一塊內(nèi)存來儲(chǔ)存這個(gè)函數(shù)里面的內(nèi)容,這個(gè)時(shí)候,才關(guān)注函數(shù)里面有哪些變量,而函數(shù)中的變量回儲(chǔ)存在新開辟出來的內(nèi)存中,函數(shù)中的變量只能在函數(shù)內(nèi)部使用,并且會(huì)隨著函數(shù)執(zhí)行完畢,這塊內(nèi)存中的所有內(nèi)容也會(huì)被清空。

我們給這個(gè)‘存放名字與值的關(guān)系’的空間起了一個(gè)名字-------命名空間。

代碼在運(yùn)行伊始,創(chuàng)建的存儲(chǔ)“變量名與值的關(guān)系”的空間叫做全局命名空間;

在函數(shù)的運(yùn)行中開辟的臨時(shí)的空間叫做局部命名空間。

python中的空間:

    全局名稱空間

    臨時(shí)(局部)名稱空間

    內(nèi)置名稱空間:len print 等內(nèi)置函數(shù)

   加載順序:內(nèi)置名稱空間-->全局名稱空間-->函數(shù)執(zhí)行時(shí):臨時(shí)名稱空間    

作用域:

    全局作用域:內(nèi)置名稱空間 全局名稱空間

    局部作用域:臨時(shí)(局部)名稱空間

   取值順序:臨時(shí)(局部)名稱空間-->全局命名空間-->內(nèi)置命名空間

    取值順序滿足就近原則

python函數(shù)詳解

函數(shù)坑:

    取值:局部只能引用全局的變量但是不能修改,修改會(huì)報(bào)錯(cuò)

    global: 1,可以修改全局變量 2,在局部空間聲明全局變量

    nonlocal: 1,不能操作全局變量 2,在局部作用域中,對(duì)父級(jí)作用域(或者更外層作用域非全局作用域)的變量進(jìn)行引用和修改,并且引用的哪層,從那層及以下此變量全部發(fā)生改變 3,子名稱空間只能引用父級(jí)空間的變量,但是不能修改

python函數(shù)詳解

python函數(shù)詳解

函數(shù)的嵌套:

    程序執(zhí)行到哪里,只要遇到函數(shù)名(),就執(zhí)行

python函數(shù)詳解

python函數(shù)詳解

函數(shù)名的運(yùn)用:

直接打印函數(shù)名,返回函數(shù)內(nèi)存地址

函數(shù)名可以作為函數(shù)的參數(shù)

函數(shù)名可以作為函數(shù)的返回值

python函數(shù)詳解

函數(shù)可以作為容器類型的元素


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI