*args和**kwargs用法

def func(*args):
    # just use "*" to collect all remaining arguments into a tuple
    # 这里的*是关键符号,args可以替换为其他命名
    # 更一般的函数定义方式是def fun(*args,**kwargs),可以在许多Python源码中发现这种定义,
    # 其中*args表示任何多个无名参数,它本质是一个元组tuple;
    # **kwargs表示关键字参数,它本质上是一个字典dict。
    numargs = len(args)
    print (
        "参数数量: {0}".format(numargs)
    )
    for i, x in enumerate(args):
        print (
            "参数 {0} 是: {1}".format(i, x)   
        ) 

func('a','b','c')
func(('a','b','c'))
func(['1','2','3'])

'''
执行结果如下
参数数量: 3
参数 0 是: a
参数 1 是: b
参数 2 是: c
参数数量: 1
参数 0 是: ('a', 'b', 'c')
参数数量: 1
参数 0 是: ['1', '2', '3']
'''

 

你可能感兴趣的:(*args和**kwargs用法)