【问题标题】:Why absl flags returns True even when I assign False?为什么即使我分配 False,absl 标志也会返回 True?
【发布时间】:2021-05-08 21:27:53
【问题描述】:

这里是代码。我试图通过使用给这个参数'False'值

python file.py --add_depth_loss False

但它仍然打印“True”....这是为什么呢?

from absl import flags, app

FLAGS = flags.FLAGS
flags.DEFINE_boolean('add_depth_loss', None, 'sss')
flags.mark_flag_as_required('add_depth_loss')

def main(_):
    print(FLAGS.add_depth_loss)

if __name__ == '__main__':
    app.run(main)

【问题讨论】:

  • 您在致电app.run 之前正在阅读这些值。我怀疑您需要将它们移到 main 函数中。

标签: python python-3.x absl-py


【解决方案1】:

经过一番研究,我发现boolboolean 标志不是这样使用的。它实际上是一个“设置为真”选项。如果要设置False,则需要设置---option=false,而不是像其他类型一样设置--option False,否则总是返回True

即使你设置了

flags.bool('option', None, 'xxx')
flags.mark_as_required('option')

并传递--option False,它也返回True

好吧,我无语了……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-14
    • 2021-08-15
    • 2010-11-02
    • 1970-01-01
    • 2015-09-26
    • 2015-04-12
    • 2019-04-14
    • 2013-09-18
    相关资源
    最近更新 更多