python-調(diào)用函數(shù)(3)

參數(shù)組合

在Python中定義函數(shù),可以用必選參數(shù)、默認參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù)和命名關(guān)鍵字參數(shù),這5種參數(shù)都可以組合使用。但是請注意,

參數(shù)定義的順序必須是:必選參數(shù)、默認參數(shù)、可變參數(shù)、命名關(guān)鍵字參數(shù)和關(guān)鍵字參數(shù)。

可變參數(shù)*args(默認名稱),傳入的是一個tuple,且這個tuple是原數(shù)據(jù)的副本,無論怎么操作也不會對原數(shù)據(jù)有影響。

關(guān)鍵字參數(shù)**kw(默認名稱),傳入的是一個dict,且進入函數(shù)的是副本。

命名關(guān)鍵字參數(shù),如我只接收city和job作為我的關(guān)鍵字參數(shù):

圖1 關(guān)鍵字參數(shù)函數(shù)定義-1

和關(guān)鍵字參數(shù)**kw不同,命名關(guān)鍵字參數(shù)需要一個特殊分隔符*,*后面的參數(shù)被視為命名關(guān)鍵字參數(shù)。

調(diào)用方式如下:

圖2 關(guān)鍵字參數(shù)函數(shù)調(diào)用-1

如果函數(shù)定義中已經(jīng)有了一個可變參數(shù),后面跟著的命名關(guān)鍵字參數(shù)就不再需要一個特殊分隔符*了:

圖3 關(guān)鍵字參數(shù)函數(shù)定義-2

命名關(guān)鍵字參數(shù)必須傳入?yún)?shù)名,這和位置參數(shù)不同。如果沒有傳入?yún)?shù)名,調(diào)用將報錯:

命名關(guān)鍵字參數(shù)可以有缺省值,從而簡化調(diào)用:

def person(name, age, *, city='Beijing', job):

? ? print(name, age, city, job)

由于命名關(guān)鍵字參數(shù)city具有默認值,調(diào)用時,可不傳入city參數(shù):

>>>person('Jack',24, job='Engineer')

>>>Jack 24 Beijing Engineer

對于任意函數(shù),都可以通過類似func(*args, **kw)的形式調(diào)用它,無論它的參數(shù)是如何定義的.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Python 是一種相當高級的語言,通過 Python 解釋器把符合語法的程序代碼轉(zhuǎn)換成 CPU 能夠執(zhí)行的機器碼...
    Python程序媛閱讀 2,031評論 0 3
  • 1.定義函數(shù): 沒有return,默認返回None 2.定義空函數(shù) 相當于什么也不做,可以用來做函數(shù)體占位符,沒有...
    maskwang520閱讀 372評論 0 0
  • 1.函數(shù)參數(shù) 1.1 位置參數(shù) 我們先寫一個計算x2的函數(shù): 對于power(x)函數(shù),參數(shù)x就是一個位置參數(shù)。當...
    時間之友閱讀 421評論 0 2
  • 位置參數(shù) 我們先寫一個計算x2的函數(shù): 對于power(x)函數(shù),參數(shù)x就是一個位置參數(shù)。 當我們調(diào)用power函...
    喵在野閱讀 372評論 0 1
  • python函數(shù)的參數(shù)是目前見過最復雜的參數(shù)了。 C語言里用的最多的可變參數(shù)函數(shù)就是scanf和printf了,j...
    米耳閱讀 395評論 0 0

友情鏈接更多精彩內(nèi)容