1、默认参数
形参设定默认值 称为 默认参数
调用函数时,如果没有传入默认参数对应的实参,则实参使用默认值。
def printinfo(name, age = 35):# 打印任何传入的字符串print(\"Name: %s\", % name)print(\"Age: %s\", % age)#调用printinfo函数printinfo(\"miki\")printinfo(\"miki\", 20)
注意:默认参数一定要位于参数列表的最后面。
def printinfo(name, age=35, sex):print nameFile \"<stdin>\", line 1SyntaxError: non-default argument follows default argument
2、可变参数
需求: 参数数量不确定,能否接收?
args
函数可以定义 可变参数,用于接收任意数量的参数
可变参数的前边需要添加*,用于提示python解释器该参数为可变参数
使用可变参数直接用args即可(不需要加*)
可变参数的本质是 将传递的参数包装成了元组
def sum_num(a, b, *args):result = a + bfor temp in args:result += tempreturn resultsum_num(1, 2, 3, .., n)
# 关键字参数一旦使用,所有实参都要使用,除非该实参对应的是可变参数# sum_num(1, 2, 3, 4, a=5)# sum_num(a=5, b=4)
kwargs
可变参数还有一种形式 可以接收不存在的关键字参数
定义参数时需要在变量名前添加两个*
这种可变参数会将 不存在的关键字参数包装成字典
def sum_num(a, b, *args, **kwargs):print(a)print(b)print(args)print(kwargs)sum_num(1, 2, 3, .., n, mm=5, nn=6)传递可变参数
解包
def sum_num(a, b, *args, **kwargs):print(a)print(b)print(args)print(kwargs)test(*args, **kwargs)def test(*args, **kwargs):print(args)print(kwargs)sum_num(1, 2, 3, .., n, mm=5, nn=6)