gpt4 book ai didi

python - 从命令行传入时,是否有一种 pythonic 方式为变量赋值?

转载 作者:行者123 更新时间:2023-11-28 22:46:21 24 4
gpt4 key购买 nike

我已经编写了以下代码,但感觉很笨拙,我想知道是否有一种 pythonic 方式来编写以下代码:

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。此外,您应该将参数解析和处理分开,因此您的参数不需要局部变量,但可以将它们用作参数。所以你最终会得到这样的东西:

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 - 从命令行传入时,是否有一种 pythonic 方式为变量赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27579660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com