【Python】*args和**kwargs到底是啥
# *args和**kwargs的用途:主要用于函数定义, 可以将不定数量的参数传递给一个函数。
# *args代表任何多个无名参数,返回的是元组
# *args是用来发一个非键值对的可变数量的参数列表给一个函数
# **kwargs表示关键字参数,所有传入的key=value,返回字典
# **kwargs允许将一个不定长度的键值对,作为参数传递给一个函数
def test(a, *args, **kwargs): print(a) print(args) print(kwargs) print('***************************************') def ak(*args, **kwargs): print('args=', args) print('kwargs=', kwargs) print('***************************************') if __name__ == '__main__': test(1, 3, 5, 7, c='2', d=4) ak(2, 4, 6, 8) ak(a=2, b=4, c=6, d=8) ak(2, 4, 6, 8, a=1, b=3, c=5) ak('x', 2, None, a=4, b='6', c=8)
# 同时使用 *args 和 **kwargs 时,*args 参数必须要列在 **kwargs 前,否则会报错。 # ak('a', a=1, 1, None, b='2', c=3)