【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)

 

posted @ 2022-09-19 11:41  键上一指禅  阅读(83)  评论(0编辑  收藏  举报