摘要:本文是學(xué)習(xí)廖雪峰官網(wǎng)網(wǎng)站教程后總結(jié)的,供日后參考用高階函數(shù)一個函數(shù)將另一個函數(shù)作為參數(shù),稱為高階函數(shù)。
本文是學(xué)習(xí)廖雪峰官網(wǎng)網(wǎng)站python教程后總結(jié)的,供日后參考用
1.高階函數(shù)
一個函數(shù)將另一個函數(shù)作為參數(shù),稱為高階函數(shù)。當(dāng)然也可以將一個函數(shù)作為結(jié)果返回
示例1:將函數(shù)作為參數(shù)
def add(x,y,f): return f(x)+f(y) result = add(-3,2,abs) print(result) // 5
示例2:將函數(shù)作為結(jié)果返回
def func(x,y): def add(): return x+y return add f = func(2,3) print(f) // Out:.add at 0x0000019D1F420158> result = f() print(result) // 5
2.匿名函數(shù)
f = lambda x: x*x print(f) //at 0x0000019D1F420158> result = f(5) print(result) //25
3.裝飾器
裝飾器(decorator)就是一個返回函數(shù)的高階函數(shù),在代碼運(yùn)行期間動態(tài)增加功能。
無參數(shù)的裝飾器示例:
import functools def log(func): //經(jīng)過裝飾的函數(shù)名稱發(fā)生改變,此方法解決這個問題 @functools.wraps(func) def wrapper(*args,**kw): print("call %s:" % func.__name__) return func(*args,**kw) return wrapper @log def now(): print("2018-2-4") now() // call now: 2018-2-4
帶參數(shù)的裝飾器示例:
import functools def log(text): def decorator(func): //經(jīng)過裝飾的函數(shù)名稱發(fā)生改變,此方法解決這個問題 @functools.wraps(func) def wrapper(*args, **kw): print("%s %s():" % (text, func.__name__)) return func(*args, **kw) return wrapper return decorator @log("execute") def now(): print("2015-3-25") now() // execute now(): 2015-3-25
4.偏函數(shù)
偏函數(shù)就是把一個函數(shù)的某些參數(shù)給固定?。ㄒ簿褪窃O(shè)置默認(rèn)值),返回一個新的函數(shù),調(diào)用這個新函數(shù)會更簡單
import functools //等價于 //def int2(x, base=2): // return int(x, base) int2 = functools.partial(int, base=2) result = int2("100000") print(result) // 32
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/41375.html
摘要:在熟悉了自定義函數(shù)和函數(shù)中使用到的參數(shù)必選參數(shù)默認(rèn)參數(shù)可變參數(shù)關(guān)鍵字參數(shù)命名關(guān)鍵字參數(shù)以及由函數(shù)返回值引伸出的遞歸和裝飾器后讓我們繼續(xù)前行高階函數(shù)函數(shù)接收兩個參數(shù),一個是函數(shù),一個是,將傳入的函數(shù)依次作用到序列的每個元素,并把結(jié)果作為新的返 在熟悉了自定義函數(shù)和函數(shù)中使用到的參數(shù)(必選參數(shù), 默認(rèn)參數(shù), 可變參數(shù), 關(guān)鍵字參數(shù), 命名關(guān)鍵字參數(shù)), 以及由函數(shù)返回值引伸出的遞歸和裝飾器...
摘要:根據(jù)我們已知的運(yùn)行模式,我們沒法在函數(shù)返回之后繼續(xù)調(diào)用函數(shù),在函數(shù)被調(diào)用的時候,變量早已不復(fù)存在,可能會發(fā)生一個運(yùn)行時錯誤。萬萬沒想到,返回的函數(shù)居然能夠正常工作。 文件讀寫 在Python中,文件的操作應(yīng)用非常多,比如大數(shù)據(jù)領(lǐng)域,涉及許多數(shù)據(jù)處理請求,基本上都是從一個文件對數(shù)據(jù)進(jìn)行分析、抽取、重寫進(jìn)行梳理數(shù)據(jù) 文件的讀寫分幾步?如何把大象放冰箱showImg(https://segm...
摘要:前言繼續(xù)向下看廖大教程,看到了函數(shù)式編程這一節(jié),當(dāng)時是覺得沒啥用直接跳過了,這次準(zhǔn)備要仔細(xì)看一遍了,并記錄下一些心得。 前言 繼續(xù)向下看廖大教程,看到了函數(shù)式編程這一節(jié),當(dāng)時是覺得沒啥用直接跳過了,這次準(zhǔn)備要仔細(xì)看一遍了,并記錄下一些心得。 函數(shù)式編程 上學(xué)期有上一門叫 人工智能 的課,老師強(qiáng)行要我們學(xué)了一個叫做 prolog 的語言,哇那感覺確實難受,思維方式完全和之前學(xué)過的不一樣,...
摘要:本文是通過廖雪峰的網(wǎng)站學(xué)習(xí)而整理的真的是很好的教程,省得我花錢買書了,然后我沒有去再整理總結(jié)語法,而是直接通過寫出代碼段來體現(xiàn)自己的學(xué)習(xí),也方便以后的快速復(fù)習(xí)回顧。 不想再像以前那樣,什么都從頭開始學(xué)習(xí)語法、總結(jié)語法,這樣反而會過分糾結(jié)于語法,耽誤了開發(fā),畢竟語言的主要屬性是工具,次要的屬性是語言本身。 所以還是先熟練使用語言去進(jìn)行開發(fā),等足夠熟悉了,再去研究語言本身(編譯原理……)。...
摘要:函數(shù)內(nèi)省的內(nèi)容到此結(jié)束。函數(shù)式編程并不是一個函數(shù)式編程語言,但通過和等包的支持,也可以寫出函數(shù)式風(fēng)格的代碼。 《流暢的Python》筆記。本篇主要講述Python中函數(shù)的進(jìn)階內(nèi)容。包括函數(shù)和對象的關(guān)系,函數(shù)內(nèi)省,Python中的函數(shù)式編程。 1. 前言 本片首先介紹函數(shù)和對象的關(guān)系;隨后介紹函數(shù)和可調(diào)用對象的關(guān)系,以及函數(shù)內(nèi)省。函數(shù)內(nèi)省這部分會涉及很多與IDE和框架相關(guān)的東西,如果平時...
閱讀 3119·2021-11-19 09:40
閱讀 1577·2021-11-15 11:39
閱讀 691·2021-10-08 10:05
閱讀 2289·2021-09-03 10:29
閱讀 3420·2021-08-12 13:22
閱讀 2191·2019-08-30 15:54
閱讀 3725·2019-08-30 14:03
閱讀 2664·2019-08-30 13:45