如何在Python中解析函数的参数?
我一直在尝试理解有关如何使用argparse在Python中解析参数的教程。这就是我传递命令行输入以便运行函数的方式吗如何在Python中解析函数的参数?,python,arguments,Python,Arguments,我一直在尝试理解有关如何使用argparse在Python中解析参数的教程。这就是我传递命令行输入以便运行函数的方式吗 import argparse parser = argparse.ArgumentParser(description='A test') parser.add_argument("--a", default=1, help="Test variable") args = parser.parse_args() def foo(): command_line_a
import argparse
parser = argparse.ArgumentParser(description='A test')
parser.add_argument("--a", default=1, help="Test variable")
args = parser.parse_args()
def foo():
command_line_argument = args.a
bar = 2*args.a
print(bar)
return
if "__name__" == "__main__"
try:
while True:
foo()
except KeyboardInterrupt:
print('User has exited the program')
以下是处于工作状态
import argparse
parser = argparse.ArgumentParser(description='A test')
parser.add_argument("--a", default=1, help="Test variable", type=int)
args = parser.parse_args()
def foo():
command_line_argument = args.a
bar = 2*args.a
print(bar)
return
if __name__ == "__main__":
try:
while True:
foo()
except KeyboardInterrupt:
print('User has exited the program')
如果您运行
python your-filename.py--a=2
它将打印4
,直到您停止执行。在我看来为True
很奇怪--您是否要求读者继续提交输入,直到他们按CTRL+C键?因为如果是这样的话,argparse是错误的用法:请参阅
如果您想要一个单独的参数,那么我会将解析器内容移动到main中,这是脚本作为程序运行而不是导入时执行的内容
另外,我将把一个参数传递给foo
,而不是args块
最后,我猜您希望收到一个数字,因此需要type=int
或类似的数字
import argparse
def foo(a):
bar = 2*a
print(bar)
return
if __name__ == "__main__":
try:
# set it up
parser = argparse.ArgumentParser(description='A test')
parser.add_argument("--a", type=int, default=1, help="Test variable")
# get it
args = parser.parse_args()
a = args.a
# use it
foo(a)
except KeyboardInterrupt:
print('User has exited the program')
因此:
这是
如果uuuu name\uuuuu='\uuuuuu main\uuuuu':
,您的方法是错误的。解析应该在if
块内完成。谢谢!很抱歉,我试图用一些示例代码来说明我想要的东西。这正是我想要的!
$ python foo.py --a 1
2