欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python函数的*和**两种参数的作用(可变参数和关键字参数)

程序员文章站 2022-07-05 20:02:49
...

Python 函数 * 和 **两种参数

最近在看pyav的examples

arg_parser = argparse.ArgumentParser()
arg_parser.add_argument('path')
arg_parser.add_argument('-f', '--format')
arg_parser.add_argument('-a', '--audio', action='store_true')
arg_parser.add_argument('-v', '--video', action='store_true')
arg_parser.add_argument('-s', '--subs', action='store_true')
arg_parser.add_argument('-d', '--data', action='store_true')
arg_parser.add_argument('-p', '--play', action='store_true')
arg_parser.add_argument('-o', '--option', action='append', default=[])
arg_parser.add_argument('-c', '--count', type=int, default=5)
args = arg_parser.parse_args()
在该代码中 利用了argparse模块来解析命令行参数

这里面用的最多的就是 add_argument这个函数了,这个函数除了自身所在的类,还有两个输出参数,

这两个输入参数的特殊之处就是以*和**开头,分别表示可变参数和关键字参数

可变参数是指参数的个数是可变的,可变参数传入时,函数会将这些参数转化成tuple或者list来处理

而关键字参数传入时,则会将这些参数转化成dict来处理

以一个简单的例子来说明这个问题

def test(*args, **kwargs):

    if args:

        print(args)

    if kwargs:

        print(kwargs)

Python函数的*和**两种参数的作用(可变参数和关键字参数)

 

从这个结果可以看出两种参数的效果

通读代码,就可以知道代码里做的是哪些事了,其实就是拼接参数