加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶(hù)
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

python的參數(shù)詳解

10/07 08:25
653
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

參數(shù)類(lèi)別

實(shí)參:實(shí)際上的參數(shù)
形參:形式上的參數(shù)

在這里插入圖片描述
如上圖,實(shí)際輸入的參數(shù)為實(shí)參,在函數(shù)中占位置的參數(shù)為形參。

實(shí)參類(lèi)型

1、位置實(shí)參

定義:調(diào)用的時(shí)候,需要根據(jù)位置傳遞實(shí)際參數(shù)

在這里插入圖片描述

如圖,Lion / Dog占了兩個(gè)位置,期望是傳遞實(shí)參建議按照這個(gè)順序,不然,即時(shí)能夠接受,也不能正確的處理。(Lion的名字跟Dog的名字,因?yàn)閭鬟f錯(cuò)誤,將導(dǎo)致不能正確識(shí)別)

2、關(guān)鍵字實(shí)參

定義:調(diào)用的時(shí)候,需要指定形參名稱(chēng)

在這里插入圖片描述
如圖,在調(diào)用的時(shí)候直接賦值,這種傳遞方式一目了然。

3、默認(rèn)值實(shí)參

定義:在函數(shù)中,直接賦值給參數(shù)

在這里插入圖片描述

如圖,直接在函數(shù)定義一個(gè)默認(rèn)值,在調(diào)用的時(shí)候,可以不傳遞,當(dāng)然也可以傳遞。

形參類(lèi)型

形參類(lèi)型分為非關(guān)鍵字形參*args, 關(guān)鍵字形參**kwargs,先上代碼體驗(yàn)一下,:

def func(*args, **kwargs):
    print("-------------------------")
    print('args is {}'.format(args))
    print('kwarg is {}'.format(kwargs))
    try:
        print('firstArgs is {}'.format(args[0]))
        print('firstKwarg is {}'.format(kwargs["a"]))
    except:
        pass

if __name__ == "__main__":

    func(1, 2) # 元組
    func(a=1, b=2, c=3, d=4) # 字典
    func(1, 2, a=1, b=2) # 元組+字典

在這里插入圖片描述

如上,我們了解了非關(guān)鍵字形參*args, 關(guān)鍵字形參**kwargs的用法。

非關(guān)鍵字形參:用于接收不含關(guān)鍵字的輸入數(shù)據(jù)(如:1,2,3),會(huì)以元組的形式進(jìn)入函數(shù);

非關(guān)鍵字形參:用于接收含有關(guān)鍵字的輸入數(shù)據(jù)(如:key=1中的key),會(huì)以字典的形式進(jìn)入函數(shù);

注意事項(xiàng):
1、*args, **kwargs可單獨(dú)存在
2、*args, **kwargs同時(shí)存在時(shí),函數(shù)定義的形參,*args形參必須在前
3、*args, **kwargs同時(shí)存在時(shí),傳遞實(shí)參的順序,*args實(shí)參必須在前
4、取值方式:
*args可通過(guò)列表取值方式,如:args[0]
**kwargs可通過(guò)字典取值方式,如:kwargs[“key”]
5、參數(shù)擴(kuò)展:可以跟普通形參一起使用,如:func(a,b,c=“name”,*args, **kwargs)

相關(guān)推薦

電子產(chǎn)業(yè)圖譜