如何为函数的多个变量设置多个参数
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
我正在尝试通过 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