首先,先來看一下我們的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 的呼叫傳...