如何为函数的多个变量设置多个参数

how to have multiple arguments to multiple variables for a function

我正在尝试通过 argparse 在函数中使用多个参数 我想把参数放在下面的函数中

def toto(var1,var2,var3):
    print(var1,var2,var3)

这是我的 argparse

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--names', type=str,nargs=1, help='<Required> Set flag')
args = parser.parse_args()    

问题是我需要三个参数。

我把这个函数放在一个文件里,比如 hello.py

if __name__ == "__main__":
    print(args)
    if args.names:
        toto(var1,var2,var3)

我然后运行命令

python hello.py --names 'bobo'

我有这个错误

Traceback (most recent call last):
  File "hello.py", line 15, in <module>
    toto(var1,var2,var3)
NameError: names 'var1' is not defined

这是怎么回事?如何添加三个参数而不是一个?

谢谢

首先,您需要指定 argparse 应在命令行上接受的参数数量,在本例中为三个 nargs=3

parser.add_argument('--names', type=str,nargs=3, help='<Required> Set flag')

变量将存储在 args.names 中,在本例中是一个列表,因此您可以将该列表解压缩为三个变量:

if __name__ == "__main__":
    if args.names:
        var1, var2, var3 = args.names
        toto(var1, var2, var3)

最后,运行它会像下面这样,它会给你正确的结果:

~$ python hello.py --names 'babi' 'bibo' 'bobu'
babi bibo bobu