預設引數
設定預設引數時,有兩點需要注意:
一是必選引數在前,預設引數在後,否則python的直譯器會報錯
二是當函式有多個引數時,把變化大的引數放前面,變化小的放後面,變化小的引數就可以作為預設引數
def power(x,n=2): s=1 while n>0: n=n-1 s=s*x return s print power(5,2) #25 print power(5) #25
呼叫power(5)時,相當於呼叫了power(5,2),而對於n>3的情況,就必須明確的傳入n,比如power(5,3)
使用預設引數最大的好處是能降低呼叫函式的難度,呼叫時預設引數符合的不需要提供額外的資訊,使用預設值即可,不符合時才需要傳遞引數值,無論是簡單呼叫,還是複雜呼叫,函式只需要定義一個
def enroll(name,gender,age=6,city='Beijing'): print ('name:',name) print('gender:',gender) print('age:',age) print('city:',city) print enroll('Sarah','F') print enroll('Bob','M',7) print enroll('Adam','M',city='Tianjin')
有多個預設引數時,呼叫時,既可以按順序提供預設引數,比如呼叫enroll('Bob','M',7),意思是,除了name,gender這兩個引數,最後一個引數應用在age上,city引數由於沒有提供,任然使用預設值
也可不按順序提供部分預設引數,當不按順序提供部分預設引數時,需要把引數名寫上,比如呼叫enroll('Adam','M',city='Tianjin'),意思是city引數用穿進去的值,其他預設引數繼續使用預設值