現在我們學完了位置引數、預設引數、可變引數、關鍵字引數、命名關鍵字引數五種引數型別。
在python中定義函式,可以使用這五種引數進行組合。
但是引數定義的順序必須是:必選引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數
def f1(a, b, c=0, *pp, **kw):
print(a,b,c,pp,kw)
dd = [9,10,12,14,15,17,19,20]
dk =
f1(*dd,**dk)
9 10 12 (14, 15, 17, 19, 20)
def f2(a,b,c=0,*,job,hh):
print(a,b,c,job,hh)
dw = (1,2,3)
ww =
f2(*dw,**ww)
1 2 3 jj hh
可以通過乙個tuple和dict來呼叫函式。
def f3(a,b,c,*pp,host,words,**kw):
print(a,b,c,pp,host,words,kw)
pp1 = (1,2,3,4,5,6,7,8,9,0)
pp2 =
pp3 =
pp4 =
f3(*pp1,**pp2,**pp3)
f3(*pp1,**pp4)
1 2 3 (4, 5, 6, 7, 8, 9, 0) hh ww
1 2 3 (4, 5, 6, 7, 8, 9, 0) hh ww
實際上,對於任意函式,都可以通過類似func(*args, **kw)的形式呼叫它,無論它的引數時如何定義的。
雖然可以組合多達5中引數與, 但不要同時使用太多的組合,否則函式介面的可讀性和可理解性都會非常差。
練習:以下函式允許計算兩個數的乘積,請稍加改造,變成可接收乙個或多個數並計算乘積:
def product(x, y):
return x * y
-------------------------------------
def pro(*x,y=1):
s = 1
for i in x:
s = i * s
print( s*y )
Python引數組合
引數定義的順序必須是 必選引數 預設引數 可選引數 命名關鍵字引數 關鍵字引數 1 a,b為必選引數 c為預設引數 args為可變引數 kw為關鍵字引數 2def f1 a,b,c 0,args,kw 3print a b b,c args args,kw kw 45 引數定義的順序必須是 必選引數...
DAY10 函式的引數
1.實參 呼叫引數,在括號內傳入的實際值,值可以為常量 變數 表示式或三者的組合 2.形參 定義函式時,在括號內宣告的變數名,用來接受外界傳來的值 1.位置實參 不用明確形參名的傳參方式,一定按照位置給形參傳值 2.關鍵字實參 必須明確形參名字與值為形參傳值,可以不用按照為宗旨 3.注意 1.關鍵字...
Day5 03 函式的引數 位置引數和預設引數
位置引數 呼叫函式時,傳入函式的引數,按照位置順序依次賦值給函式的引數。計算乘方的函式 def power x,n s 1 while n 0 n n 1 s s x return s 在使用power 1,2 時,會根據位置順序,將1賦值給x 2 賦值給n。預設引數 如果希望不指定指數時,預設按照...