三、偏函式
一、匿名函式
如題,匿名函式,直白點,就是沒有具體名稱的函式,但是不影響函式本身的使用。
作業:使用匿名函式改造下面的**
def is_odd
(n):
return n %2==
1l =
list
(filter
(is_odd,
range(1
,20))
)如下l =list
(filter
(lambda n : n%2==
1,range(1
,20))
)
二、裝飾器(decorator)
本身是對函式進行裝飾的能力,在不改變已有函式**的前提下,給函式「裝飾」新增的功能。
2.1 .name
函式的內建屬性,表示函式的名稱
def now()
:print(1
)now.__name__ // "now"
2.2 @語法 :
def 函式 a(function ())
@adef 函式b
表示將@下面的函式,作為引數傳給@後面的函式,進行執行,明白這個才能進行下乙個
2.2 decoreate
現在要在now函式中,增加乙個列印的功能,比如開始列印和結束列印,就是需要在目標函式的執行開始和執行結束增加功能裝飾。
作業1,給目標函式列印執行時間
def log
(fn)
: def decorete
(*x,
**y)
:print
('%s 執行了 %2f ms'
%(fn.__name__,
11.567))
fn(*x,*
*y)return decorete
@log
def a
(x,y)
:print
('%d + %d = %d'
%(x,y,x+y)
)
作業2:請編寫乙個decorator,能在函式呼叫的前後列印出』begin call』和』end call』的日誌
def log
(fn)
: def decorete
(*x,
**y)
:print
('begin called %s'
% fn.__name__)
f =fn(
*x,*
*y)print
('end called %s'
% fn.__name__)
return f
return decorete
@log
def a
(x,y)
:print
('%d + %d = %d'
%(x,y,x+y)
)
三、偏函式
直白點,就是優雅的幫我們節省**
import functools
int2 = functools.
partial
(int
)int2
(2.3
)// 2
和上面裝飾器不同的是,他是返回乙個新的函式,不會對原函式進行操作
這個文件更詳細偏函式
函式式程式語言python 函式式程式設計
函式是python內建支援的一種封裝,我們通過把大段 拆成函式,通過一層一層的函式呼叫,就可以把複雜任務分解成簡單的任務,這種分解可以稱之為面向過程的程式設計。函式就是面向過程的程式設計的基本單元。而函式式程式設計 請注意多了乙個 式 字 functional programming,雖然也可以歸結...
python自學筆記(十)
1.生成單調的list 1,2,3,4,5,6 可用list range 1,11 2.生成有一定規律的list 1x1,2x2,3x3,10x10 l for x in range 1,11 x x for x in range 1,11 把要生成的表示式放在前面 for迴圈 判斷條件 根據情況選...
Python函式式程式設計
python函式式程式設計的核心思想是 把函式當資料.所以,函式可以用作函式引數,函式返回值,元組或字典成員等 閉包閉包是實現 復用的一種途徑,與類不同的是它基於函式實現.函式與它的環境變數一起就構成了閉包,閉包只有乙個返回值,那就是閉包中的函式 def line conf a,b def line...