Python函数-可变长参数

1 一个星号(*)

一个星号形参的函数会把多个位置参数值当成元祖的形式传入,也就是传入的多个参数值可以在函数内部进行元祖遍历

# 求传入了多少个参数
def howlong(first, *other):
	print(type(other))
	# other实际以元组的形式传入
	for o in other:
		print(o)
	return 1+len(other)

lo = howlong("aa", "bb", "cc", "bb")
print(lo)

输出:
<class 'tuple'>
bb
cc
bb
4

2 两个星号(**)

形参前面加两个星号,两个星号形参的函数会把关键字参数值当成字典的形式传入,在函数内部会把关键字参数当成字典在函数内部进行遍历

# 求传入了多少个参数
def howlong(first, **other):
	print(type(other))
	# other实际以元组的形式传入
	for o in other.items():
		print(o)
	return 1+len(other)

lo = howlong("aa", b="bb", c="cc", d="bb")
print(lo)

输出:
<class 'dict'>
('b', 'bb')
('c', 'cc')
('d', 'bb')
4

3 一个星号和两个星号混合使用

# 求传入了多少个参数
def howlong(first, *args, **kargs):
    print(type(args))
    print(args)
    print(type(kargs))
    print(kargs)
    return 1+len(args)+len(kargs)

lo = howlong("aa",'dd', b="bb", c="cc", d="bb")
print(lo)

输出:
<class 'tuple'>
('dd',)
<class 'dict'>
{'b': 'bb', 'c': 'cc', 'd': 'bb'}
5

注意
关键字参数必须在位置参数之后

lo = howlong("aa",'dd', b="bb", c="cc", d="bb")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值