Python中关于函数参数的一些总结

这里主要总结学习python的函数时的一些参数问题

函数参数

参数调用时传入的参数要和定义的个数相匹配(可变参数例外)
位置参数
	def f(x, y, z) 调用使用 f(1, 3, 5)
	按照参数定义顺序传入实参
关键字参数
	def f(x, y, z) 调用使用 f(x=1, y=3, z=5)
	使用形参的名字来出入实参的方式,如果使用了形参名字,那么传参顺序就可和定义顺序不同
传参
	f(z=None, y=10, x=[1])
	f((1,), z=6, y=4.1)
	f(y=5, z=6, 2) #
要求位置参数必须在关键字参数之前传入,位置参数是按位置对应的

可变参数

  1. 位置参数的可变参数
有多个数,需要累加求和:
>>> def add(*nums):
		sum = 0
		print(type(nums)) 
		for x in nums:
			sum += x 
		print(sum)
>>> add(3, 6, 9) # 调用
在形参前使用*表示该形参是可变参数,可以接收多个实参
收集多个实参为一个tuple
  1. 关键字参数的可变参数
>>> def showconfig(**kwargs): 
		for k,v in kwargs.items():
			print('{} = {}'.format(k, v))
>>> showconfig(host='127.0.0.1',port='8080',username='wayne',password='magedu')
形参前使用**符号,表示可以接收多个关键字参数
收集的实参名称和值组成一个字典

参数解构

给函数提供实参的时候,可以在集合类型前使用*或者**,把集合类型的结构解开,提取出所有元素作为函数的实参
非字典类型使用*解构成位置参数
字典类型使用**解构成关键字参数
提取出来的元素数目要和参数的要求匹配,也要和参数的类型匹配
例1:
>>> def add(x, y):
		return x+y
>> add(*(4,5)) | add(*[4,5]) | add(*{4,6})
>>> d = {'x': 5, 'y': 6}
>>> add(**d) | add(**{'a': 5, 'b': 6})
11
>>> add(*{'a':5,'b':6})
'ab'

例2:
>>> def add(*iterable):
		result = 0
		for x in iterable:
			result += x return result
>>> add(1,2,3) |  add(*[1,2,3])  | add(*range(10))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值