打印有效的参数



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

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

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

args是一个argparse.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))

如果使用""而不是", "加入,则会提供接近您的版本的内容。

vars(args)给出的字典与args.__dict__.items()相同。

print(parser.parse_args([]))将显示所有默认值,无需任何用户输入。 当然,如果有必需的输入,这是行不通的。

最新更新