Python——函数的参数和返回值_可变参数

在 Python 的函数中,可以定义可变参数。可变参数指的是在函数定义时,该函数可以接受任意个数的参数,参数的个数可能是1个或多个,也可能是0个。可变参数有两种形式,参数名称前加星号(*)或者加两个星号(**)

语法格式:

def funname(formal_args,*args,**kwargs):
	statements
	return expression

在上面的函数定义中, formal_args 为定义的传统参数,代表一组参数,*args** kwargs可变参数。函数传入的参数个数会优先匹配 formal_args 参数的个数,* args元组的形式保存多余的参数,** kwargs字典的形式保存带有指定名称形式的参数,这种参数也称为关键字参数。

调用函数的时候,如果传人的参数个数和 formal_args 参数的个数相同,可变参数会返回空的元组或字典;如果传人参数的个数比 formal_args 参数的个数多,可以分为如下两种情况:

  • 如果传入的参数没有指定名称,那么* args以元组的形式存放这些多余的参数。
  • 如果传入的参数指定了名称,如 score =90,那么** kwargs以字典的形式存放在这些被命名的参数。

例 6-9 可变参数的应用:

#ex0609.py
def showmessage(name,*p_info):
    print("姓名",name)
    for e in p_info:
        print(e,end=",")
    return

#调用showmassage函数
showmessage("Kate")
print("-----------------------")
showmessage("Kate","male",18,"Dalian")

例 6-10 关键字数的应用:

#ex0610.py
def showmessage(name,*p_info,**scores):
    print("姓名",name)
    for e in p_info:
        print(e,end=",")
    for item in scores.items():
        print(item,end=" ")
    print()
    return

#调用showmassage函数
showmessage("Kate","male",18,"Dalian")
print("-----------------------")
showmessage("Kate","male",18,"Dalian",math=86,pe=92,eng=88)

你可能感兴趣的:(Python知识体系,python,可变参数)