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

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)

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

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

猜你喜欢

转载自blog.csdn.net/u011337602/article/details/81226686
今日推荐