Python 函式(引數組合)

記憶殘留發表於2017-07-17

在Python中定義函式,可以用必選引數、預設引數、可變引數和關鍵字引數,這4種引數都可以一起使用,或者只用其中某些,但是請注意,引數定義的順序必須是:必選引數、預設引數、可變引數和關鍵字引數

定義一個函式,包含上述4種引數:

def  func(a,b,c=0,*args,**kw):
    print 'a=',a,'b=',b,'c=',c,'args=',args,'kw=',kw

 在函式呼叫的時候,Python直譯器自動按照引數位置和引數名把對應的引數傳進去。

print  func(1,2)  
# = > a= 1 b= 2 c= 0 args= () kw= {}

print func(1,2,c=3)
# = > a= 1 b= 2 c= 3 args= () kw= {}

print func(1,2,3,'a','b')
# => a= 1 b= 2 c= 3 args= ('a', 'b') kw= {}

print  func(1,2,3,'a','b',x=99)
# =>a= 1 b= 2 c= 3 args= ('a', 'b') kw= {'x': 99}

 最神奇的是通過一個tuple和dict,你也可以呼叫該函式:

args=(1,2,3,4)
kw={'x':99}
print  func(*args,**kw)  # =>a= 1 b= 2 c= 3 args= (4,) kw= {'x': 99}

 所以,對於任意函式,都可以通過類似func(*args, **kw)的形式呼叫它,無論它的引數是如何定義的。

 

轉自:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738449338c8a122a7f2e047899fc162f4a7205ea3000

相關文章