日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python函数编程-偏函数partial function

發布時間:2025/7/14 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python函数编程-偏函数partial function 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python函數編程-偏函數partial function

一般的,通過設定函數參數的默認值,可以減低函數調用的難度。比如:int()函數可以把字符串轉換成整數:

>>> int('123') 123

事實上,int()函數還提供額外的base參數,表示進制,只是默認值是10而已:

>>> int('123',base=16) 291 >>> int('123',16) 291

現在,如果我們需要轉換大量的二進制字符串,每次都調用int(x,base=2)顯得比較麻煩。這時我們可以嘗試封裝函數int(x,base=2)成為int2(x),而int2(x)相當于:

>>> def int2(x,base=2): ... return int(x,base) ... >>> int2('1000111') 71

在python的functools模塊中就內置了partial函數,用于把函數的某些參數固定住(也就是設置默認值),最后返回一個新函數。這就是偏函數(和數學中的偏函數的意義不同)。上述例子可以使用偏函數改寫為:

>>> import functools >>> int2 = functools.partial(int,base=2) >>> int2('110011') 51

其實,上面新的int2函數,僅僅是把base參數的默認值由原來的10變為2。我們還是可以在函數調用的時候傳入其他的值:

>>> int2('110011',base = 10) 110011

創建偏函數的時候,可以接收3種類型的參數:函數、*args、**kw:

當寫成:

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

int2('110011')

執行的結果相當于:

kw = { 'base': 2 } int('10010', **kw)

當寫成:

>>> max2 = functools.partial(max,5) >>> max2(3,6) 6

相當于:

args = (10, 5, 6, 7) max(*args)

可見,如果一個函數的參數個數太多,需要簡化的時候,使用functools.partial函數,可以創建一個函數,這個新函數可以將原函數的部分參數初始化(即賦默認值),調用的時候更簡單

posted on 2017-12-28 23:45 風雨一肩挑 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/hiwuchong/p/8138386.html

總結

以上是生活随笔為你收集整理的python函数编程-偏函数partial function的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。