''' 一 *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])