Python函数之不定长参数
概念
概述:
不定长参数也叫可变参数, 即: 参数的个数是可变的.
格式:
在形参名的前边写上 *, 或者 **,
如果是 * 则表示可以接收所有的 位置参数, 形成元组.
如果是 ** 则表示可以接收所有的 关键字参数, 形成字典.
细节:
1. 如果位置参数, 一般用 *args表示.
2. 如果是关键字参数, 一般用 **kwargs kw: keyword 关键字的意思.
3. 可变参数用于形参, 表示可以接收任意个实参, 最少0个, 最多无数个.
*args参数
# 需求1: 演示可变参数之 位置参数.
# 需求: 定义函数, 求和.
# 分解版
def getSum3(a, b, c):return a + b + cdef getSum4(a, b, c, d):return a + b + c + d# 我们发现, 上述的代码, 形参列表是不同的, 但是函数体是高度相似的, 我们可以用 可变参数(不定长参数)优化, 如下.
def getSum(*args): # 你把这的 args当做元组即可.print(args, type(args)) # tuple 元组类型.# 定义求和变量.sum = 0# 遍历, 获取每个数字, 然后累加.for i in args:sum += ireturn sum # 返回求和结果# 调用getSum()函数
print(getSum())
print(getSum(10, 20))
print(getSum(10, 20, 30))
print(getSum(33, 11, 5, 66))
# print(getSum(33, 11, 5, 66, age=33)) #报错, *args 可变参数, 能接受所有的位置参数, 形成元素, 无法接收 关键字参数.
**kwargs
# 定义函数.
def show(**kwargs): # 它只能接收 关键字参数, 形成字典.print(type(kwargs)) # print(kwargs)# 调用函数.
# show(10, 20, 30) # 报错, **kwargs, 只能接收 关键字参数.show(name='刘亦菲', age=33)
print('-' * 31)# 演示: 函数能不能既有 *args, 又有 **kwargs呢?
def func1(*args, **kwargs):print(args, type(args)) # (10, 20, 30) print(kwargs, type(kwargs)) # {'name': '高圆圆', 'age': 35} # 调用函数
# 位置参数 关键字参数
func1(10, 20, 30, name='高圆圆', age=35)
print('-' * 31)# 普通参数 可变参数 缺省参数
def func2(name, age, *args, address='中国'):print(name, age, address, args)# 位置参数 关键字参数
func2(10, 20, 30, 40, 50, address='北京')
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
