Python_收集参数

当不清楚有多少参数传入函数时可以使用收集参数,例如print函数就是使用收集参数

*:打包为元组

>>> def f(*a):
	print('有%d个参数' % len(a))
	print('第二个参数是:',a[1])
	
>>> f(1,2,3,4,5)
有5个参数
第二个参数是: 2

>>> def f(*a):
	print(type(a))
	
>>> f(1,1,1,1,1)
<class 'tuple'> #收集参数的参数被打包为一个元组

当收集参数后还有其他参数时,调用函数时必须用关键参数来指定,否则都将被视为收集参数

>>> def f(*a, b):
	print('收集参数:', a)
	print('其他参数:', b)

>>> f(1,1,2,3,4,5)
Traceback (most recent call last):
  File "<pyshell#15>", line 1, in <module>
    f(1,1,2,3,4,5)
TypeError: f() missing 1 required keyword-only argument: 'b'
>>> f(1,2,3,4, b = 5)
收集参数: (1, 2, 3, 4)
其他参数: 5

#在有收集参数的情况下,建议将其他参数设置为默认参数,例如print函数
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

*在形参中的作用是打包,在实参中的作用是解包

>>> a = (1,2,3,4,5)
>>> print(a)
(1, 2, 3, 4, 5)
>>> print(*a)
1 2 3 4 5

>>> a = [1,2,3,4,5]
>>> print(a)
[1, 2, 3, 4, 5]
>>> print(*a)
1 2 3 4 5

>>> a = 'lzm'
>>> print(a)
lzm
>>> print(*a)
l z m

**:打包为字典

>>> def f(**a):
	print('有%d个参数' % len(a))
	print('分别是:', a)

	
>>> f(a=1, b=2, c=3, d=4, e=5)
有5个参数
分别是: {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
# 当参数带两个**时,传递给函数的任意数量的key=value实参会被打包进一个字典中
# 下面演示解包
>>> a = {'a':1, 'b':2, 'c':3}
>>> f(**a)
有3个参数
分别是: {'a': 1, 'b': 2, 'c': 3}


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值