标签: absl-py

使用 Abseil 与直接调用 main()?

我一直在用香草

def main():
    # Do stuff


if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

但最近看到人们在做

from absl import app

def main(_):
    # Do things

if __name__ == '__main__':
    app.run(main)
Run Code Online (Sandbox Code Playgroud)

Abseil 提供了flags.FLAGS,但我一直在使用ArgumentParser,它工作得很好,所以 Abseil 在这方面没有胜利。

那么,为什么还要走绳降路线呢?

PS:Reddit上的相关讨论(并没有真正回答这个问题):https://www.reddit.com/r/Python/comments/euhl81/is_using_googles_abseil_library_worth_the/

python abseil absl-py

9
推荐指数
1
解决办法
2293
查看次数

不带时间戳模块名称的 Python Absl 日志记录

我想知道是否可以在absl python 中仅记录消息字符串,而不记录时间戳和模块名称。例子

I0108 23:40:57.153055 140614090106688 extractor.py:79] processing file: dfcsdf
I0108 23:40:57.162382 140614090106688 extractor.py:72] ['/topic/fdfgd', dfgsdf']
I0108 23:40:57.162861 140614090106688 extractor.py:79] processing file: f456546fd
I0108 23:40:57.171764 140614090106688 extractor.py:72] ['/topic/1', '/topic/2', '/topic/3']
Run Code Online (Sandbox Code Playgroud)

是否有一个配置可以只记录如下消息

processing file: dfcsdf
['/topic/fdfgd', dfgsdf']
processing file: f456546fd
['/topic/1', '/topic/2', '/topic/3']
Run Code Online (Sandbox Code Playgroud)

我知道我可以用控制台打印替换日志记录或编写自定义记录器,我想知道它是否可以在ABSL日志记录中?

python logging abseil absl-py

2
推荐指数
1
解决办法
4314
查看次数

为什么即使我指定 False,absl flags 也会返回 True?

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

python file.py --add_depth_loss False
Run Code Online (Sandbox Code Playgroud)

但它仍然打印“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)
Run Code Online (Sandbox Code Playgroud)

python python-3.x absl-py

1
推荐指数
1
解决办法
1632
查看次数

标签 统计

absl-py ×3

python ×3

abseil ×2

logging ×1

python-3.x ×1