python 高階函式(二)

2021-07-12 07:11:00 字數 1047 閱讀 1953

python中用關鍵字lambda表示匿名函式,匿名函式只有一條語句,很簡潔也沒有函式名

lambda 引數 : 返回值

lambda可以不傳引數,但必須要有返回值

>>> f=lambda x,y:x+y

>>> f(1,2)

3

>>> def f(x, y):

... return x+y

以上兩個函式是等價的

裝飾器從字面上來說就是在不改變被裝飾物件的前提下修飾被裝飾物件,對於已經定義好的的函式,如果想要在不修改原函式的前提下增加原函式的功能,就可以用到裝飾器

>>> def log(func):

... print('hello')

... return func(*args, **kw)

...>>> @log

... def who():

... print('python')

...>>> who

>>> who()

hello

python

>>>

裝飾器實質上是高階函式,接收乙個函式作引數並返回乙個新的函式,呼叫

>>> @log

... def who():

... print('python')

...

其實相當於執行這條語句

>>> who=log(who)

偏函式實質上是使用python 自帶的functools 模組中的partial function 來修改已有的帶有預設引數的函式的預設引數並返回乙個新的函式

>>> import functools

>>> int2=functools.partial(int, base=2)

>>> int2('10111')

23

python 函式高階 python 函式高階

形參角度 萬能引數 動態接收位置引數 args 動態接收關鍵字引數 kwargs 的魔性用法 函式定義時 代表聚合。他將所有的位置引數 聚合成乙個元組,賦值給了args 函式定義時 將所有的關鍵字引數聚合成乙個字典中,將這個字典賦給了 kwargs 和 在函式的呼叫時 代表打散 僅限關鍵字引數 de...

Python高階 函式高階

閉包 closure 常規函式中可以在函式的引數中新增引數的預設值來簡化函式的操作,偏函式也可以做到這一點,而且會更加的方便管理函式的操作。通過內建模組functools的partial進行定義和處理 語法結構 新函式名稱 functools.partial 函式名稱,預設賦值引數 例如 全域性函式...

Python函式式程式設計(二) 常見高階函式

乙個函式的引數中有函式作為引數,這個函式就為高階函式。下面學習幾個常見高階函式。一 map 傳入的函式依次作用到序列的每個元素,並把結果作為新的iterator返回 舉例 有乙個函式f x x2,要把這個函式作用在乙個list 1,2,3,4,5,6,7,8,9 上 def f x return x...