0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python函數(shù)的萬能參數(shù)

馬哥Linux運(yùn)維 ? 來源:博客園 ? 2024-07-17 14:56 ? 次閱讀

我們通過一個(gè)簡單的事例來展示一下函數(shù)的萬能參數(shù),我們先寫一個(gè)最簡單的函數(shù)

def test(*args,**kwargs):
    print(args,kwargs)

然后定義兩個(gè)變量

l = [1,2,3,4]
d = {"a":1,"b":2}

下面我們分別看下兩種傳參的方式有什么不同

第一種方式

test(l,d)

如果是使用上面的方式傳參,那么l,d這2個(gè)變量都會(huì)傳遞給args這個(gè)形參,作為args變量的兩個(gè)元素,kwargs是一個(gè)空的字典,沒有任何參數(shù)傳遞一個(gè)他

([1, 2, 3, 4], {'a': 1, 'b': 2}) {}

我們可以看到列表l和字典d被當(dāng)做一個(gè)tuple的兩個(gè)元素了

第二種方式

test(*l,**d)

如果是上面的方式傳參,那么l這個(gè)變量就會(huì)被賦值給args,d這個(gè)變量就會(huì)被賦值給kwargs

(1, 2, 3, 4) {'a': 1, 'b': 2}

通過上面的演示,你應(yīng)該基本上了解python的萬能參數(shù)了吧,也知道如果函數(shù)使用萬能參數(shù),你應(yīng)該如何進(jìn)行傳參了把

今天被搞糊涂了,又把萬能參數(shù)梳理一下

大家先看下這個(gè)函數(shù)

def foo(action=None,**kwargs):
    print("action",action,sep="=================>")
    print("kwargs", kwargs, sep="=================>")
 
d = {"a":1,"b":2}
 
 
foo(d)
print("=".center(100,"*"))
 
foo(**d)

我執(zhí)行的結(jié)果如下
804d3f46-43e6-11ef-b8af-92fbcf53809c.png
下面我來解釋一下

第一種調(diào)用函數(shù)的方式,傳遞了一個(gè)字典進(jìn)去,這個(gè)字典會(huì)被當(dāng)做一個(gè)整體傳遞進(jìn)去,這個(gè)字典會(huì)被賦值給位置變了,也就是action

第二種調(diào)用函數(shù)的方法,通過**字典的方法傳遞進(jìn)去,他實(shí)際是這樣傳遞的a=1,b=2這樣傳遞進(jìn)去的,實(shí)際上一個(gè)命名變量,而這2個(gè)變量的名稱都不action,所以第二中調(diào)用的方式的結(jié)果就是

action為none

kwargs就是一個(gè)字典

我們?cè)诳磥硐碌谌N調(diào)用的方法

d = {"action":"action","a":1}
foo(**d)

下面在看下結(jié)果,是否就明白了一些了

80694376-43e6-11ef-b8af-92fbcf53809c.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4235

    瀏覽量

    61962
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4752

    瀏覽量

    84066

原文標(biāo)題:python函數(shù)的萬能參數(shù)

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    萬能板的連線問題

    有哪位大蝦有萬能板的連線經(jīng)驗(yàn)
    發(fā)表于 10-27 09:46

    電子萬能試驗(yàn)機(jī)與液壓萬能試驗(yàn)機(jī)的區(qū)別

    提供的國內(nèi)、國際標(biāo)準(zhǔn)定做各種試驗(yàn)數(shù)據(jù)處理軟件和試驗(yàn)輔具。數(shù)字顯示電子萬能試驗(yàn)機(jī)適合于只求力值 抗拉強(qiáng)度 抗壓強(qiáng)度等相關(guān)數(shù)據(jù)的用戶。如需求取較為復(fù)雜參數(shù),微機(jī)控制電子萬能試驗(yàn)機(jī)是您更好的選擇。從性價(jià)比
    發(fā)表于 07-04 16:06

    萬能電池怎么使用?

    排線式萬能電池由:通用規(guī)格的電芯,高質(zhì)量柔性排線,接觸點(diǎn)(多是三點(diǎn)接觸點(diǎn)),附件(包括絕緣墊片,包裝紙等)組成。
    發(fā)表于 10-21 09:02

    Labview【萬能參數(shù)保存神器】

    還在為保存labview前面板中不同類型的參數(shù)而頭痛嗎?還在用LabVIEW自帶的例程寫ini文件嗎?你OUT了,現(xiàn)在教大家一個(gè)懶人必備【萬能參數(shù)保存神器】!從此以后,你可以和煩人的參數(shù)
    發(fā)表于 11-19 14:34

    怎樣去設(shè)計(jì)基于STM32的紅外萬能遙控器

    連載目錄:01、基于STM32的紅外萬能遙控器完整教程視情況更新。。?;赟TM32的紅外萬能遙控器完整教程一、概述實(shí)現(xiàn)的功能參考文檔二、項(xiàng)目的邏輯三、硬件主控模塊接線方式四、代碼結(jié)構(gòu)Main函數(shù)
    發(fā)表于 08-16 06:49

    中星微萬能驅(qū)動(dòng)下載

    中星微萬能驅(qū)動(dòng)下載
    發(fā)表于 01-11 23:02 ?19次下載
    中星微<b class='flag-5'>萬能</b>驅(qū)動(dòng)下載

    winxp萬能聲卡驅(qū)動(dòng),程序下載

    winxp萬能聲卡驅(qū)動(dòng) 尊敬的用戶,本萬能驅(qū)
    發(fā)表于 04-21 19:23 ?538次下載
    winxp<b class='flag-5'>萬能</b>聲卡驅(qū)動(dòng),程序下載

    萬能遙控器設(shè)置方法_萬能遙控器代碼

    電視是每個(gè)家庭必不可少的家用電器,所以我們?cè)谑褂眠b控器的時(shí)間也會(huì)比較多。但如果遙控器換了怎么辦,很多人都會(huì)想到配一個(gè)萬能遙控器,那么萬能遙控器怎么設(shè)置,它的萬能
    發(fā)表于 09-14 18:08 ?18.8w次閱讀
    <b class='flag-5'>萬能</b>遙控器設(shè)置方法_<b class='flag-5'>萬能</b>遙控器代碼

    萬能協(xié)議通信工具

    萬能協(xié)議通信工具分享
    發(fā)表于 11-18 11:47 ?14次下載

    萬能轉(zhuǎn)換開關(guān)原理_萬能轉(zhuǎn)換開關(guān)結(jié)構(gòu)

    本文首先闡述了萬能轉(zhuǎn)換開關(guān)原理,其次介紹了萬能轉(zhuǎn)換開關(guān)技術(shù)特點(diǎn),最后介紹了萬能轉(zhuǎn)換開關(guān)結(jié)構(gòu)。
    發(fā)表于 12-09 10:16 ?9444次閱讀

    萬能轉(zhuǎn)換開關(guān)選型_萬能轉(zhuǎn)換開關(guān)使用

    本文主要介紹了萬能轉(zhuǎn)換開關(guān)選型方法及萬能轉(zhuǎn)換開關(guān)的使用。
    發(fā)表于 12-09 10:30 ?3786次閱讀

    液晶彩電萬能主板代換的方法分享

    首先根據(jù)所修液晶彩電的顯示屏參數(shù),LVDS接口選擇合適的萬能主板和LVDS連接線,如果對(duì)所選萬能主板和連接線不熟悉,可將顯示屏參數(shù),LVDS接口情況通報(bào)給
    的頭像 發(fā)表于 02-18 20:38 ?1.4w次閱讀

    關(guān)于萬能式斷路器參數(shù)的確定

    萬能式斷路器的結(jié)構(gòu)選定后,應(yīng)選擇萬能式斷路器的電氣參數(shù)。所謂電氣參數(shù)的確定,主要是指萬能式斷路器的額定電壓、額定電流和通斷能力,一個(gè)重要的問
    發(fā)表于 03-02 22:48 ?3311次閱讀

    萬能斷路器參數(shù)如何設(shè)置

    萬能斷路器是一種廣泛應(yīng)用于電力系統(tǒng)、工業(yè)自動(dòng)化和建筑電氣領(lǐng)域的電氣設(shè)備,其主要功能是在電路中起到過載、短路、欠壓等保護(hù)作用。正確設(shè)置萬能斷路器參數(shù)對(duì)于確保設(shè)備安全運(yùn)行和提高系統(tǒng)可靠性具有重要意義
    的頭像 發(fā)表于 07-31 15:19 ?658次閱讀

    萬能斷路器參數(shù)設(shè)置的基本原則

    和發(fā)揮其保護(hù)作用,需要對(duì)其進(jìn)行正確的參數(shù)設(shè)置。 一、萬能斷路器的基本知識(shí) 1.1 萬能斷路器的定義 萬能斷路器是一種具有多種保護(hù)功能的低壓斷路器,能夠?qū)﹄姎庠O(shè)備和線路進(jìn)行過載、短路、欠
    的頭像 發(fā)表于 08-14 15:50 ?296次閱讀