最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3 實(shí)現(xiàn)減少可調(diào)用對象的參數(shù)個數(shù)

 更新時間:2019年12月20日 16:03:05   作者:惑也  
今天小編就為大家分享一篇Python3 實(shí)現(xiàn)減少可調(diào)用對象的參數(shù)個數(shù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

問題

一個被其他python代碼使用的callable對象,可能是一個回調(diào)函數(shù)或者是一個處理器,由于其參數(shù)太多,導(dǎo)致調(diào)用時出錯。

解決方案

如果需要減少某個函數(shù)的參數(shù)個數(shù),可以使用functools.partial() 。 partial() 函數(shù)允許給一個或多個參數(shù)設(shè)置固定的值,減少接下來被調(diào)用時的參數(shù)個數(shù)。 假設(shè)一個函數(shù)有很多參數(shù):

def func(a, b, c, d):
  print(a, b, c, d)

使用 partial() 函數(shù)來固定某些參數(shù)值:

from functools import partial

s1 = partial(func, 1) # a = 1
print(s1(2, 3, 4))
(1, 2, 3, 4)

s2 = partial(func, d=100)  # d = 100
print(s2(1, 2, 3))
(1, 2, 3, 100)

s3 = partial(func, 1, 2, d=100) # a = 1, b = 2, d = 100
print(s3(3))
(1, 2, 3, 100)

可以看出 partial()函數(shù)固定某些參數(shù),并返回一個新的callable對象。這個新的callable接受未賦值的參數(shù), 然后跟之前已經(jīng)賦值過的參數(shù)合并起來,最后將所有參數(shù)傳遞給原始函數(shù)。

討論

假設(shè)有一個點(diǎn)的列表points,表示(x, y)坐標(biāo)元組。現(xiàn)在需要以點(diǎn)(4, 3)為基點(diǎn),根據(jù)點(diǎn)和基點(diǎn)之間的距離來排序points中所有的點(diǎn)。

定義一個函數(shù),用來計算兩點(diǎn)之間的距離:

import math

points = [(1, 2), (3, 4), (5, 6), (7, 8)]
pt = (4, 3)

def distance(p1, p2):
  x1, y1 = p1
  x2, y2 = p2
  return math.hypot(x2 - x1, y2 - y1)

列表的 sort() 排序方法,可以接受一個關(guān)鍵字參數(shù),設(shè)置自定義排序的邏輯, 但是它只能接受一個單個參數(shù)的函數(shù),很顯然,distance()函數(shù)不符合條件,通過使用 partial() 函數(shù)可以解決這個問題:

points.sort(key=partial(distance, pt))
print(points)
[(3, 4), (1, 2), (5, 6), (7, 8)]

很多時候 partial() 能實(shí)現(xiàn)的效果,其實(shí),lambda表達(dá)式也能實(shí)現(xiàn)。

points.sort(key=lambda x: distance(pt, x))
print(points)
[(3, 4), (1, 2), (5, 6), (7, 8)]

以上這篇Python3 實(shí)現(xiàn)減少可調(diào)用對象的參數(shù)個數(shù)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python線性插值解析

    python線性插值解析

    這篇文章主要介紹了python線性插值解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Django后臺admin的使用詳解

    Django后臺admin的使用詳解

    這篇文章主要介紹了Django后臺admin的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • opencv實(shí)現(xiàn)圖像平移效果

    opencv實(shí)現(xiàn)圖像平移效果

    這篇文章主要為大家詳細(xì)介紹了opencv實(shí)現(xiàn)圖像平移效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • python實(shí)現(xiàn)簡單中文詞頻統(tǒng)計示例

    python實(shí)現(xiàn)簡單中文詞頻統(tǒng)計示例

    本篇文章主要介紹了python實(shí)現(xiàn)簡單中文詞頻統(tǒng)計示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Python入門_條件控制(詳解)

    Python入門_條件控制(詳解)

    下面小編就為大家?guī)硪黄狿ython入門_條件控制(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • JupyterNotebook 如何調(diào)整輸出窗口的顯示效果

    JupyterNotebook 如何調(diào)整輸出窗口的顯示效果

    這篇文章主要介紹了JupyterNotebook 輸出窗口的顯示效果調(diào)整實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • citespace數(shù)據(jù)處理:用python對Ref文檔進(jìn)行去重方式

    citespace數(shù)據(jù)處理:用python對Ref文檔進(jìn)行去重方式

    這篇文章主要介紹了citespace數(shù)據(jù)處理:用python對Ref文檔進(jìn)行去重方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python中不同數(shù)據(jù)對象的空值校驗(yàn)總結(jié)

    python中不同數(shù)據(jù)對象的空值校驗(yàn)總結(jié)

    在Python中,我們可以使用不同的方式來校驗(yàn)數(shù)值的空值、字符串的空值以及對象的空值,本文為大家整理了一些常見的方法,希望對大家有所幫助
    2024-01-01
  • 用python的seaborn畫數(shù)值箱型圖

    用python的seaborn畫數(shù)值箱型圖

    大家好,本篇文章主要講的是用python的seaborn畫數(shù)值箱型圖,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 使用Python進(jìn)行數(shù)獨(dú)求解詳解(一)

    使用Python進(jìn)行數(shù)獨(dú)求解詳解(一)

    本文主要介紹了如何構(gòu)建一個Python腳本來解決數(shù)獨(dú)難題,本文的重點(diǎn)在于介紹用于構(gòu)建數(shù)獨(dú)求解器的回溯算法。感興趣的小伙伴可以學(xué)習(xí)一下
    2022-02-02

最新評論

闽侯县| 高邑县| 项城市| 高碑店市| 长汀县| 乌兰县| 开封市| 开封市| 洪洞县| 涡阳县| 孝感市| 双峰县| 津市市| 梁山县| 宝山区| 洪洞县| 玉溪市| 玉溪市| 册亨县| 万盛区| 丰镇市| 肃南| 洛南县| 永寿县| 仪征市| 闽侯县| 南岸区| 加查县| 西平县| 麻栗坡县| 南召县| 平乡县| 竹山县| 密山市| 遵义市| 东源县| 盈江县| 前郭尔| 柳林县| 昔阳县| 泰兴市|