1

这是代码。我试图通过使用给这个参数'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)
4

1 回答 1

0

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

即使你设置

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

并且通过--option False,它也返回True

好吧,我无语了……

于 2021-05-08T22:19:02.213 回答