日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python偏函數(shù)是什么?怎么用?

偏函數(shù)?相信很多小伙伴看到這個內(nèi)容,腦海中會是一頭霧水,想想自己所學(xué)的內(nèi)容,好像關(guān)于偏函數(shù)的少之又少,那對于這么不常見的內(nèi)容,我們要怎么去理解呢?小編就幫大家整理了有關(guān)偏函數(shù)的所有精華內(nèi)容集錦,具體內(nèi)容如下哦~

為鞏留等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及鞏留網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站建設(shè)、網(wǎng)站制作、鞏留網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

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

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

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

舉一個常見的例子來說明:

我們實現(xiàn)了一個取余函數(shù),對于整數(shù) 100,取得對于不同數(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

下面再看一個例子,講的是如何進(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ù),可以對現(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)用時傳入其他值:

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

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

否則如果直接傳如一個數(shù)值會報錯:

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

原因如下:

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

int2 =functools.partial(int, base=2)  # int 是函數(shù)對象,base=2 是 **kw,沒有傳入 *args 參數(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 里的值傳入的

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

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

相當(dāng)于:

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

結(jié)果為10。

以上就是關(guān)于python的偏函數(shù)的用法,如需了解更多python實用知識,點(diǎn)擊進(jìn)入PyThon學(xué)習(xí)網(wǎng)教學(xué)中心。


本文標(biāo)題:創(chuàng)新互聯(lián)Python教程:python偏函數(shù)是什么?怎么用?
網(wǎng)頁URL:http://www.5511xx.com/article/dhoiidi.html