【问题标题】:Print effective arguments打印有效参数
【发布时间】:2017-08-23 15:24:36
【问题描述】:

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

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

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

【问题讨论】:

标签: python argparse


【解决方案1】:

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))

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多