Python偏函式及其使用

2021-10-08 21:17:19 字數 1246 閱讀 6662

首先,先來看一下我們的int函式

int作為函式時有個神奇功能,將字串變為數,比如"123",返回值123。這是乙個整型數。

ok,我們再想一下,int(123)當然返回的是123了。

如果輸入是:int("123",8),返回是83

>>int("123",8)

83意思是返回8進製的123在十進位制下的表示。

這個8,在int引數中,變數名是base,也可以寫成:int("123",base= 8)

如果輸入int(123,8) 返回錯誤:

typeerror: int() can't convert non-string with explicit base

好的,我們現在搞搞偏函式 funtools裡面給了乙個函式叫partial,看看它幹了啥:

import functools

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

#functols.partial返回的是乙個函式 這裡返回了int

#就可以直接呼叫int2函式

int2('1000000')

用數學函式表示,就是 funcname1 = functools.partial(funcname1, varname = value),  funcname2(**) = funcname1(**, varname = value)。

好的,現在我們有了對乙個引數的函式的變換,那麼如果函式有多個引數,怎麼辦呢?

再看乙個示例:

#偏函式的示範

import functools

def max(a,b,c):

print(c)

if a>=b:

if b>=c:

return a

elif a>= c:

return a

else:

return c

else:

if a>=c:

return b

elif b>=c:

return b

else:

return c

max3_4 = functools.partial(max,c=4, b=3)

print(max3_4(6))

注意, 原來的順序是b c 現在partial裡面用了c b,這樣定義,在傳遞給新函式max3_4時,就會將3和4作為這個函式的kwarg**傳遞進去了。而python中,kwarg**是作為這個函式的最後一組引數傳遞的。

python 偏函式 python 偏函式

functools.partial可以設定預設引數和關鍵字引數的預設值 python的functools模組提供了很多有用的功能,其中乙個就是偏函式 partial function 要注意,這裡的偏函式和數學意義上的偏函式不一樣。在介紹函式引數的時候,我們講到,通過設定引數的預設值,可以降低函式呼...

python純函式,偏函式

純函式 乙個函式的返回結果只依賴於他的引數,並且只執行過程裡面沒有 我們就把這個函式叫做純函式 即函式不讀取 修改外部變數,全域性變數。3個原則 變數都只在函式作用域內獲取,作為函式的引數傳入 不會產生 不會改變被傳入的資料或者其他資料 全域性變數 相同的輸入保證相同的輸出 是指函式被呼叫,完成可函...

python 偏函式應用

摘要 python的設計核心原則就是簡潔 在這種原則的指導下,誕生了lambda表示式和偏函式 二者都讓函式呼叫變得簡潔。本文主要為你介紹偏函式的應用。如果我們定義了乙個函式,比如說將四個數相加add one two,three,four 上層有很多函式需要呼叫這個函式。在這些呼叫中,80 的呼叫傳...