在Python中定義函數(shù),可以用必選參數(shù)(位置參數(shù)),默認參數(shù),可變參數(shù),關(guān)鍵字參數(shù)和命名關(guān)鍵字參數(shù),這5種參數(shù)都可以組合使用。但參數(shù)定義的順序必須是:
必選參數(shù)
(位置參數(shù))
默認參數(shù)
可變參數(shù)
命名關(guān)鍵字參數(shù)
關(guān)鍵字參數(shù)
例如:
定義:
def f1(x, y=0, *args, z, **kw):
print(x, y, args, z, kw)
調(diào)用:
f1(1, 2, 3, 4, 5, z=6, p=7, q=8)
輸出:
1 2 (3,4,5) 6, {'p': 7, 'q': 8}
定義:
def f2(x, y=0, *, z, **kw)
print(x, y, z, kw)
調(diào)用:
f2(1, 2, z=6, p=7, q=8)
輸出:
1 2 6 {'p': 7, 'q': 8}
小結(jié):
Python的函數(shù)具有非常靈活的參數(shù)形態(tài),既可以實現(xiàn)簡單的調(diào)用,又可以傳入非常復(fù)雜的參數(shù)。
默認參數(shù)
一定要用
不可變對象
,如果是可變對象,程序運行時會有邏輯錯誤!
要注意定義
可變參數(shù)
和
關(guān)鍵字參數(shù)
的語法:*args是可變參數(shù),args接收的是一個tuple;**kw是關(guān)鍵字參數(shù),kw接收的是一個dict。
以及調(diào)用函數(shù)時如何傳入
可變參數(shù)
和
關(guān)鍵字參數(shù)
的語法:
-
可變參數(shù)
既可以直接傳入:func(1, 2, 3),又可以先組裝list或tuple,再通過
*args傳入:func(*(1, 2, 3)); - 關(guān)鍵字參數(shù) 既可以直接傳入:func(a=1, b=2),又可以先組裝dict,再通過**kw傳入:func(**{‘a(chǎn)’: 1, ‘b’: 2})。
- 使用*args和**kw是Python的習(xí)慣寫法,當(dāng)然也可以用其他參數(shù)名,但最好使用習(xí)慣用法。
- 命名關(guān)鍵字參數(shù) 是為了限制調(diào)用者傳入的參數(shù)名,同時可以提供默認值。定義 命名關(guān)鍵字參數(shù) 在沒有 可變參數(shù) 的情況下不要忘了寫分隔符*,否則定義的將是 位置參數(shù) 。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
