打印有效参数

时间:2017-03-29 22:33:22

标签: python argparse

我运行一个带有长参数列表的python程序(> 20个参数)。参数具有所有默认值(如果未被用户覆盖)。在程序的启动时,我打印有效参数,以便跟踪程序是如何启动的。今天我用一个愚蠢的例程打印:

def print_config(args):
    print("Configuration:")
    print("  shoes:   {}".format(args.shoes))
    print("  socket:  {}".format(args.socket))
    [...]

如何使用智能迭代器打印?

1 个答案:

答案 0 :(得分:1)

argsargparse.Namespace个对象。该类,或者更确切地说其super具有repr方法。这就是你在做什么时所看到的

print(args)

repr(您可以在argparse.py文件中找到)的相关行是:

    arg_strings = []
    for name, value in sorted(self.__dict__.items()):
        arg_strings.append('%s=%r' % (name, value))
    return '%s(%s)' % (type_name, ', '.join(arg_strings))

如果您加入了' \ n'而不是',',它会给你的版本提供接近的东西。

vars(args)提供与args.__dict__.items()相同的字典。

print(parser.parse_args([]))将显示所有默认值,无需任何用户输入。当然,如果有必要的输入,它将不会起作用。