我已经编写了以下代码,但感觉非常笨拙,我想知道是否有一种蟒蛇式的方式来编写以下代码:
import argparse
foo = 0
bar = 1
parser = argparse.ArgumentParser()
parser.add_argument("-a", "--foo", type=int,
help="foo")
parser.add_argument("-b", "--bar", type=int,
help="bar")
args = parser.parse_args()
if args.foo: # This is the bit that I think is clunky
foo = args.foo #
if args.bar: #
bar = args.bar #
在我的代码中,我有大约7个不同的参数,拥有一个
if
语句列表似乎不是最好的方法。有更好的方法写这一节吗? 最佳答案
argparse
有默认参数,因此不需要if
s。此外,您应该将参数解析和处理分离开来,因此您不需要为参数使用局部变量,但可以将它们用作参数。所以你最终会得到这样的结果:
import argparse
def some_function(foo, bar):
pass
def main():
parser = argparse.ArgumentParser()
parser.add_argument("-a", "--foo", type=int, default=0,
help="foo")
parser.add_argument("-b", "--bar", type=int, default=1,
help="bar")
args = parser.parse_args()
some_function(args.foo, args.bar)
if __name__ == '__main__':
main()
关于python - 从命令行传入时,是否存在一种将变量赋值的Python方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27579660/