可变参数和关键字参数——传参时参数带名字
位置参数 ---> positional argument
关键字参数 ---> keyword argument ---> 参数名=参数值
关键字参数一定在位置参数后面
# *args ---> 可变参数 ---> 可以接收零个或任意多个位置参数 ---> 将所有的位置参数打包成一个元组
def add(*args):
print(args, type(args))
temp = [arg for arg in args if type(arg) in (int, float)]
return sum(temp)
# **kwargs --> 可以接收零个或任意多个关键字参数 ---> 将所有的关键字参数打包成一个字典
def add2(**kwargs):
print(kwargs, type(kwargs))
temp = [kwarg for kwarg in kwargs.values() if type(kwarg) in (int, float)]
print(temp, type(temp))
return sum(temp)
# 位置参数需要在关键字参数前面,即*需要在**前
def com(*args, **kwargs):
print(f'args输出:{args},kwargs输出:{kwargs}')
return
print(add())
print(add(1))
print(add(1, 2))
print(add(1, 2, 3, 4))
# # TypeError: add() got an unexpected keyword argument 'a'
# print(add(a=1, b=2))
print(add2(a=1, b=2))
com(1, 2, 3, '4', a=5, b='6')
fighting