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'>)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值