成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python偏函數(shù)的使用方法-創(chuàng)新互聯(lián)

小編給大家分享一下python偏函數(shù)的使用方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)靈川免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

偏函數(shù) partial 應(yīng)用

函數(shù)在執(zhí)行時(shí),要帶上所有必要的參數(shù)進(jìn)行調(diào)用。但是,有時(shí)參數(shù)可以在函數(shù)被調(diào)用之前提前獲知。這種情況下,一個(gè)函數(shù)有一個(gè)或多個(gè)參數(shù)預(yù)先就能用上,以便函數(shù)能用更少的參數(shù)進(jìn)行調(diào)用。

偏函數(shù)是將所要承載的函數(shù)作為partial()函數(shù)的第一個(gè)參數(shù),原函數(shù)的各個(gè)參數(shù)依次作為partial()函數(shù)后續(xù)的參數(shù),除非使用關(guān)鍵字參數(shù)。

舉一個(gè)常見的例子來說明:

我們實(shí)現(xiàn)了一個(gè)取余函數(shù),對(duì)于整數(shù) 100,取得對(duì)于不同數(shù) m 的 100%m 的余數(shù)。

from functools import partial
 
def mod( n, m ):
  return n % m
 
mod_by_100 = partial( mod, 100 )
 
print mod( 100, 7 )  # 2
print mod_by_100( 7 )  # 2

下面再看一個(gè)例子,講的是如何進(jìn)行不同的進(jìn)制轉(zhuǎn)換。

from functools import partial
 
bin2dec = partial( int, base=2 )
print bin2dec( '0b10001' )  # 17
print bin2dec( '10001' )  # 17
 
hex2dec = partial( int, base=16 )
print hex2dec( '0x67' )  # 103
print hex2dec( '67' )  # 103

關(guān)于偏函數(shù),可以對(duì)現(xiàn)有函數(shù)進(jìn)行加強(qiáng)。

>>> import functools
>>> int2 =functools.partial (int, base=2) # 把 int 的轉(zhuǎn)換設(shè)為二進(jìn)制了,這里 base 是 int 函數(shù)表示進(jìn)制的參數(shù)。
>>>int2('1000000')
64
 
>>>int2('1010101')
85

在重設(shè)之后, 也可以在函數(shù)調(diào)用時(shí)傳入其他值:

>>> int2('1000000', base=10)  # 這里 base 變成了 10,覆蓋了已設(shè)的默認(rèn)值 2。
1000000

注意這里在創(chuàng)建新的偏函數(shù)后,依舊可以更改已經(jīng)設(shè)置的默認(rèn)值,但是必須清晰指出是更改了 base 的值。

否則如果直接傳如一個(gè)數(shù)值會(huì)報(bào)錯(cuò):

int2('100', 10)  # 報(bào)錯(cuò),10 前未加 base=,不能分辨這是傳給 base 的

原因如下:

創(chuàng)建偏函數(shù)時(shí),實(shí)際上可以接收函數(shù)對(duì)象、*args 和 **kw 這 3 個(gè)參數(shù),當(dāng)傳入:

int2 =functools.partial(int, base=2)  # int 是函數(shù)對(duì)象,base=2 是 **kw,沒有傳入 *args 參數(shù)

實(shí)際上固定了 int() 函數(shù)的關(guān)鍵字參數(shù) base,也就是:

int2('10010')

相當(dāng)于:

kw = { 'base': 2 }
int('10010', **kw)  # 如果不指明 base=2 而只是傳入 2 的話,那么 2 被認(rèn)為是 *args 的值

當(dāng)傳入:

max2 =functools.partial(max, 10)  # 這里的 10 顯然就是作為 *args 里的值傳入的

實(shí)際上會(huì)把 10 作為 *args 的一部分自動(dòng)加到參數(shù)列表里去,也就是:

max2(5,6, 7)  # 原本有 *args 的列表,然后會(huì)把 10 再加進(jìn)去

相當(dāng)于:

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

結(jié)果為10。

以上是python偏函數(shù)的使用方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前標(biāo)題:python偏函數(shù)的使用方法-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article24/dipsje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)、域名注冊(cè)網(wǎng)站維護(hù)、網(wǎng)站內(nèi)鏈靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
同江市| 山西省| 昌宁县| 邯郸县| 浮山县| 龙口市| 安宁市| 普洱| 平昌县| 建昌县| 平邑县| 顺昌县| 济源市| 衡南县| 靖西县| 吉首市| 安庆市| 武安市| 平利县| 尼木县| 梁平县| 靖宇县| 定州市| 松潘县| 监利县| 承德县| 获嘉县| 若羌县| 嵩明县| 哈巴河县| 兴海县| 溧阳市| 宣恩县| 福贡县| 武乡县| 宁德市| 五华县| 水富县| 雅安市| 开阳县| 汨罗市|