蜜桃精品成人影片_99热在线精品免费_日韩亚洲中字无码一区二区三区_亚洲中文字幕久久精品无码一区

您現(xiàn)在所在的位置:首頁 >學(xué)習(xí)資源 > Python全棧+人工智能入門教材 > Python基礎(chǔ)入門教程19:再說函數(shù) 那些不得不知道的事兒

Python基礎(chǔ)入門教程19:再說函數(shù) 那些不得不知道的事兒

來源:奇酷教育 發(fā)表于:

前面的課程中,我們已經(jīng)對函數(shù)有了簡單的了解函數(shù)的聲明、函數(shù)的的調(diào)用、函數(shù)的參數(shù)以及返回值等等本節(jié)內(nèi)容主要對函數(shù)中的一些高級操作進(jìn)行

前面的課程中,我們已經(jīng)對函數(shù)有了簡單的了解
函數(shù)的聲明、函數(shù)的的調(diào)用、函數(shù)的參數(shù)以及返回值等等
 
本節(jié)內(nèi)容主要對函數(shù)中的一些高級操作進(jìn)行講解,方便大家在項目操作過程中對函數(shù)的操作更加靈活一些
 
函數(shù)遞歸
函數(shù)變量賦值
參數(shù)中的函數(shù)
匿名函數(shù)
返回值中的函數(shù):閉包
偏函數(shù)
裝飾器
1. 函數(shù)遞歸
 
函數(shù)的遞歸,就是讓在函數(shù)的內(nèi)部調(diào)用函數(shù)自身的情況,這個函數(shù)就是遞歸函數(shù)。
遞歸函數(shù)其實是另外一種意義的循環(huán)
如:計算一個數(shù)字的階乘操作,將這個功能封裝成函數(shù)fact(num)
提示:階乘算法是按照小于等于當(dāng)前數(shù)字的自然數(shù)進(jìn)行乘法運算
計算5的階乘:5 X 4 X 3 X 2 X1
計算n的階乘:n X (n - 1) X ... X 3 X 2 X 1


我們在之前說過,遞歸就是另外一種特殊的循環(huán):函數(shù)級別的循環(huán)
所以遞歸函數(shù)也可以使用循環(huán)來進(jìn)行實現(xiàn)
但是循環(huán)的實現(xiàn)思路沒有遞歸清晰。
 
使用遞歸函數(shù)時一定需要注意:遞歸函數(shù)如果一旦執(zhí)行的層數(shù)過多就會導(dǎo)致內(nèi)存溢出程序崩潰。
 
有一種做法是將遞歸函數(shù)的返回值中,不要添加表達(dá)式,而是直接返回一個函數(shù),這樣的做法旨在進(jìn)行尾遞歸優(yōu)化,大家如果有興趣的話可以上網(wǎng)自行查詢一下;由于不同的解釋器對于函數(shù)遞歸執(zhí)行的不同的處理,所以遞歸的使用請慎重分析和操作。
 
2. 函數(shù)變量賦值
 
函數(shù),是一種操作行為
函數(shù)名稱,其實是這種操作行為賦值的變量
調(diào)用函數(shù),其實是通過這個賦值的變量加上一堆圓括號來進(jìn)行函數(shù)的執(zhí)行

既然函數(shù)名稱只是一個變量,變量中存放了這樣的一個函數(shù)對象
我們就可以將函數(shù)賦值給另一個變量

3. 參數(shù)中的函數(shù)
 
函數(shù)作為一個對象,我們同樣可以將函數(shù)當(dāng)成一個實際參數(shù)傳遞給另一個函數(shù)進(jìn)行處理、

4. 匿名函數(shù)


5. 返回值中的函數(shù):閉包
 
函數(shù)作為對象,同樣也可以出現(xiàn)在返回值中,其實就是在函數(shù)中又定義了另外的函數(shù)
在一個函數(shù)中定義并使用其他的函數(shù),這樣的方式在不同的編程語言中有不同的管理方式,在Python中,這樣的方式也成為閉包。

6. 偏函數(shù)
 
常規(guī)函數(shù)操作中,我們在函數(shù)的參數(shù)中可以添加參數(shù)的默認(rèn)值來簡化函數(shù)的操作,偏函數(shù)也可以做到這一點,偏函數(shù)可以在一定程度上更加方便的管理我們的函數(shù)操作
偏函數(shù)通過內(nèi)置模塊functools的partial()函數(shù)進(jìn)行定義和處理
 
如之前我們學(xué)習(xí)過的一個類型轉(zhuǎn)換函數(shù)int(str),用于將一個字符串類型的數(shù)字轉(zhuǎn)換成整數(shù),同樣的,可以在類型轉(zhuǎn)換函數(shù)中指定將一個字符串類型的數(shù)字按照指定的進(jìn)制的方式進(jìn)行轉(zhuǎn)換


系統(tǒng)內(nèi)置函數(shù)可以通過上述的形式進(jìn)行封裝,那么我們自定義函數(shù)是否也可以封裝呢


7. 裝飾器函數(shù)處理
 
裝飾器是在不修改函數(shù)本身的代碼的情況下,對函數(shù)的功能進(jìn)行擴(kuò)展的一個手段






>>>更多VR/AR入門教程:VR入門
水富县| 应城市| 三明市| 榆中县| 台北市| 喀喇沁旗| 钟祥市| 遵义市| 岳西县| 勃利县| 泰和县| 崇义县| 长治县| 浠水县| 锡林浩特市| 苍南县| 淮南市| 霸州市| 洪湖市| 馆陶县| 贵定县| 永胜县| 潜江市| 肃宁县| 伽师县| 萨迦县| 扎鲁特旗| 水富县| 宜州市| 湖口县| 金塔县| 沧州市| 揭东县| 平南县| 缙云县| 阳西县| 绥宁县| 廊坊市| 城步| 都兰县| 兰考县|