python學習之偏函式partial

2022-09-08 02:00:17 字數 1619 閱讀 6501

partial 一共有三個部分:

(1)第一部分也就是第乙個引數,是乙個函式,這個函式可以是你定義的,也可以是python內建函式

(2)第二部分是乙個可變引數,*args,

(3)第三部分是乙個關鍵字引數 **args,

partial函式的作用就是:將所作用的函式作為partial()函式的第乙個引數,

原函式的各個引數依次作為partial()函式的後續引數,原函式有關鍵字引數的一定要帶上關鍵字,

沒有的話,按原有引數順序進行補充。

python版本3.6

from functools import partial

def sum_add(*args1):

def decorator(func):

def my_sum(*args2):

my_s=0

for n in args1:

my_s+=n

return func(*args2)+my_s

return my_sum

return decorator

@sum_add(10,20)

def test_sum(*args):

value=0

for i in args:

value+=i

return value

print(test_sum(1,2,3,4,5))

#########################以上通過帶引數裝飾器,獲得1+2+3+4+5+10+20 列子

def sum(*args):

s=0for n in args:

s=s+n

return s

sum_add_10=partial(sum,10)

sum_add_10_20=partial(sum,10,20)

print(sum)

print(partial(sum,10))

print(sum_add_10(1,2,3,4,5))

print(sum_add_10_20(1,2,3,4,5))

print('*'*50)

#############################偏函式列子1##########################

l=list(range(1,11))

slice_5_10=partial(slice,5,10) #slice內建函式slice(start,stop,step) 函式實現切片物件,主要用在切片操作函式裡的引數傳遞。

print(l[slice_5_10()])

print('*'*50)

#############################偏函式列子2##########################

def mod(m,key=2):

return m%key==0

mod_to_2=partial(mod,key=2)

print(mod(6))

print(mod_to_2(3))

mod_to_5=partial(mod,key=5)

print(mod(25,key=5))

print(mod_to_5(35))

python之偏函式

定義 偏函式的第二個部分 可變引數 按原有函式的引數順序進行補充,引數將作用在原函式上,最後偏函式返回乙個新函式 類似於,裝飾器decorator,對於函式進行二次包裝,產生特殊效果 但又不同於裝飾器,偏函式產生了乙個新函式,而裝飾器,可改變被裝飾函式的函式入口位址也可以不影響原函式 效果 固定一部...

python學習,偏函式

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

Python學習 偏函式

哈哈哈哈,一看到偏函式,就想起大一學的高數,那時候剛學完高數,學python一直讓我搞混這個概念,現在重新學python,高數的偏函式直接忘乾淨了,這下不會混了。python的functools模組提供了很多有用的功能,其中乙個就是 partial function 要注意,這裡的偏函式和數學意義上...