Python傳遞引數的多種方式(小結)
阿新 • • 發佈:2020-01-09
一 位置傳遞
沒什麼好過多講解.
# 位置傳遞例項: def fun1(a,b,c): return a+b+c print(fun1(1,2,3))
輸出:
6
二 關鍵字傳遞
更具每個引數的名字寫入函式引數
# 關鍵字傳遞 def fun2(a,c): return a+b+c print(fun2(1,c=3,b=2))
輸出:
6
三 引數預設值傳遞
給函式的輸入引數設定一個預設值,如果該引數最終沒有輸入,則使用預設引數出入函式.
# 預設值傳遞 def fun3(a,b=2,c=3): return a+b+c print(fun3(a = 1))
輸出:
6
四 包裹傳遞
在定義函式時,我們有時候並不知道呼叫的時候會傳遞多少個引數。這時候,包裹(packing)位置引數或者包裹關鍵字引數來進行引數傳遞會非常有用。
下面是包裹位置傳遞的例子:
def fun4(*name): print(type(name)) print(name) fun4([1,3]) fun4((1,3)) fun4(1,3)
結果:
<class 'tuple'>
([1,3],)
<class 'tuple'>
((1,3),)
<class 'tuple'>
(1,3)
從上面的結果分析:
在fun4的引數表中,所有的引數被name收集,根據位置合併成一個元祖(tuple),這就是包裹位置傳遞。
五 解包裹傳遞
def func1(a,b=1,*c,**d): print(a,c,d) l = [3,4] dic = {'@':2,'#':3} func1(1,l,dic) print("---------**------------") func1(1,*l,**dic) func1(1,3,4,**dic)
執行結果:
1 2 ([3,4],{'@': 2,'#': 3}) {}
---------**------------
1 2 (3,4) {'@': 2,'#': 3}1 2 (3,'#': 3}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。