Python:函數參數

1.普通參數。實參與形參的順序必須一一對應,而且不能少傳或者多傳

def show(user,password):
    print (user)
    print (password)

show('csdn','csdn')

#少傳
show('csdn')
#報錯:TypeError: show() takes exactly 2 arguments (1 given)

#多傳
show('csdn','csdn','csdn')
#報錯:TypeError: show() takes exactly 2 arguments (3 given)

2.默認參數,函數中默認參數在普通參數的後面,且在進行參數傳遞的時候,默認參數可以不用進行指定。

def show(user,password='123456'):
    print (user),
    print (password)

show('csdn')
>>>csdn,123456


show('csdn','csdn')
>>>csdn,csdn

3.指定參數。如果我不想要按照順序傳遞參數應該怎麼辦。

def show(user,password):
    print (user),
    print (password)

show(password='12345',user='csdn')
>>>csdn,12345

4.動態參數。利用元組和字典,一般放在最後面.且元組參數在字典前面,只能這樣(*arg,**argv),不能這樣(**argv,*arg)

def show(*arg,**argv):
    print (arg,type(arg)),
    print (argv,type(argv))

show(23,33,44)
>>>((23, 33, 44), <type 'tuple'>) ({}, <type 'dict'>)

show([22,33,44])
>>>(([23, 33, 44],), <type 'tuple'>) ({}, <type 'dict'>)

show(22,33,44,k=1,b=2)
>>>((23, 33, 44), <type 'tuple'>) ({'k': 1, 'b': 2}, <type 'dict'>)

#假如我想傳入變量
l=[12,33,44]
d={'k1':1,'k2':2}
show(l,d)
>>>(([12, 33, 44], {'k2': 2, 'k1': 1}), <type 'tuple'>) ({}, <type 'dict'>) #字典沒有接收到,全給了元組

#解決方法
show(*l,**d)
>>>((12, 33, 44), <type 'tuple'>) ({'k2': 2, 'k1': 1}, <type 'dict'>)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章