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