python中functools寶庫下的partial

發表於2016-02-06

看起來好久沒更新,再不更新估計手都生鏽了。隨便寫點什麼。看看日曆,也算是新年第一篇。

說說Python中的一個寶庫functools中的一個函式——partial。

partial ,單詞的意思是“區域性的,部分的”。單看這個詞可能有些模糊,但是加上前面的functools,會不會有些明白?那個穿白衣服的同學,你來回答。你說不知道?

先來看下functools的定義:

中文大意是:

Note

在python中都有那些東西可以被當做函式來呼叫呢?

有了上面的定義,應該大體知道, partial 這個東西是針對函式起作用的,並且是部分的,函式中哪些東西可以拆成部分呢?那個白衣服的同學。【小白:類似於裝飾器嗎。博主:你出去。】

好了,我們們繼續,裝飾器是對函式進行包裝,算是對函式的整體進行處理(其實是對輸入和輸出)。部分的話其實只有對引數進行部分處理了。怎麼部分處理的呢?看個場景就明白了。

場景:有這樣的函式:get_useragent(request) 用來獲取使用者瀏覽器的ua資訊,但是這個函式又不是在主體函式(執行頁面渲染的函式)get時呼叫的,只在模板中的一個filter中呼叫的(可以理解是在模板渲染時呼叫的),而filter在執行的時候是不能新增引數的,哪你要怎麼處理。

這時partial就得閃亮登場了,程式碼時間到:

這樣的例子不知道是否夠清楚,函式的大致意思就是提前給函式繫結幾個引數。

不考慮場景的例子是這樣的:

就這樣,隨便寫篇,以示存在。

另外,招聘還在繼續,機不可失,時不再來。覺得有潛力,有可培養的同學,以及還沒找到可以共同吐槽各類技術的牛人,也可以來試試,這裡有人陪你一起吐槽。

相關文章