absl 库全称是 Abseil Python Common Libraries。它原本是个C++库,后来被迁移到了Python上。

    它是创建Python应用的代码集合。这些代码从谷歌自己的Python代码基地中搜集而来,已经过全面的测试并广泛用于生产中。

    特点:

    • 简单的应用创建
    • 布式的命令行标志系统
    • 用户自定义的记录模块,并拥有额外的功能。
    • 拥有测试工具

    下面是它的 hello world 样例。我们输入参数:name 代表名字,num_times 代表语句重复次数。name是必填参数,num_times是可选参数,默认值为1.

    1. from absl import app
    2. from absl import flags
    3. FLAGS = flags.FLAGS # 用法和TensorFlow的FLAGS类似,具有谷歌独特的风格。
    4. flags.DEFINE_string("name", None, "Your name.")
    5. flags.DEFINE_integer("num_times", 1,"Number of times to print greeting.")
    6. #指定必须输入的参数
    7. flags.mark_flag_as_required("name")
    8. def main(argv):
    9. del argv # 无用
    10. for i in range(0, FLAGS.num_times):
    11. print('Hello, %s!' % FLAGS.name)
    12. if name == 'main':
    13. app.run(main) # 和tf.app.run()类似


    在Windows上,我们在命令行输入这样的命令:

    1. python .\absl_hello.py --name=World --num_times=10 # 这四条命令等价
    2. python .\absl_hello.py --name World --num_times 10
    3. python .\absl_hello.py -name World -num_times 10
    4. python .\absl_hello.py -name=World -num_times=10


    我们都可以得到这样的输出:

    Hello, World!
    Hello, World!
    Hello, World!
    Hello, World!
    Hello, World!
    Hello, World!
    Hello, World!
    Hello, World!
    Hello, World!
    Hello, World!
    Hello, World! 重复了十次。
    ————————————————
    版权声明:本文为CSDN博主「信道者」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/chr1991/article/details/94492128