python 中 *args he **kwargs的区别

'''
一 *args 和 **kwargs 的区别?
    *args 表示任意个 无名参数, 类型是元祖 tuple.
    **kwargs 表示的是关键字的参数 传入的参数是 dict 类型。

    当*和**符号出现在函数定义的参数中时,表示任意数目参数收集。
    *arg表示任意多个无名参数,类型为tuple;**kwargs表示关键字参数,为dict。
    使用时需将*arg放在**kwargs之前,否则会有“SyntaxError: non-keyword arg after keyword arg”的语法错误

二  dict 类型? 字典!
        python中唯一的映射类型,是一种键值对方式。
        key 是唯一的,根据key值得到values

'''


# 只要有* 标示符号即可,用haha 也能使用。 规范是args
def demo(*haha):
    for i in haha:
        print(i)


demo(2, 3, 4, 444)
#       打印结果
# 2
# 3
# 4
# 444

'''
    **kwargs  键值对的方式
    **会以键/值对的形式解包一个字典,使其成为独立的关键字参数。
'''


def demo2(**xixi):
    print(xixi)
    key = xixi.keys()
    values = xixi.values()
    print(key)
    print(values)


demo2(a=1, b=2, c=3)
#       打印结果。
# {'a': 1, 'b': 2, 'c': 3}
# dict_keys(['a', 'b', 'c'])
# dict_values([1, 2, 3])
原文地址:https://www.cnblogs.com/ZXF6/p/14068882.html