前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >fire让命令行接口更简单

fire让命令行接口更简单

作者头像
用户2196567
发布2018-07-02 12:07:22
5640
发布2018-07-02 12:07:22
举报
文章被收录于专栏:chafezhouchafezhou

Python中用于生成命令行接口CLIs(Command Line Interfaces)的库已经有一些了,例如标准库argparse和第三方的click,但是这些库为Python程序生成CLIs的时候稍显麻烦,需要增加的地方比较多,过程稍显繁琐. 这里介绍的这个利器,几乎可以不改变原始代码就能够生成CLIs,它就是fire


fire让命令行如此简单

下面通过一个简单的计算器来展示下fire的魔力

原始计算器
代码语言:javascript
复制
 1def add(x, y):
 2    """
 3    加法运算
 4    :param x:
 5    :param y:
 6    :return:
 7    """
 8    return x + y


 9def subtract(x, y):
10    """
11    减法运算
12    :param x:
13    :param y:
14    :return:
15    """
16    return x - y


17def multiply(x, y):
18    """
19    乘法运算
20    :param x:
21    :param y:
22    :return:
23    """
24    return x * y


25def divide(x, y):
26    """
27    除法运算
28    :param x:
29    :param y:
30    :return:
31    """
32    return x / y
click改造版
代码语言:javascript
复制
 1import click


 2@click.group()
 3def cli():
 4    pass


 5@cli.command()
 6@click.option('--x', default=1, help=u'被加数')
 7@click.option('--y', default=1, help=u'加数')
 8def add(x, y):
 9    """
10    加法运算
11    :param x: 
12    :param y: 
13    :return: 
14    """
15    print x + y


16@cli.command()
17@click.option('--x', default=1, help=u'被减数')
18@click.option('--y', default=1, help=u'减数')
19def subtract(x, y):
20    """
21    减法运算
22    :param x: 
23    :param y: 
24    :return: 
25    """
26    print x + y


27@cli.command()
28@click.option('--x', default=1, help=u'乘数')
29@click.option('--y', default=1, help=u'乘数')
30def multiply(x, y):
31    """
32    乘法运算
33    :param x: 
34    :param y: 
35    :return: 
36    """
37    print x * y


38@cli.command()
39@click.option('--x', default=1, help=u'被除数')
40@click.option('--y', default=1, help=u'除数')
41def divide(x, y):
42    """
43    除法运算
44    :param x: 
45    :param y: 
46    :return: 
47    """
48    print x / y


49if __name__ == '__main__':
50    cli()
fire改造版
代码语言:javascript
复制
 1import fire


 2def add(x, y):
 3    """
 4    加法运算
 5    :param x:
 6    :param y:
 7    :return:
 8    """
 9    return x + y


10def subtract(x, y):
11    """
12    减法运算
13    :param x:
14    :param y:
15    :return:
16    """
17    return x - y


18def multiply(x, y):
19    """
20    乘法运算
21    :param x:
22    :param y:
23    :return:
24    """
25    return x * y


26def divide(x, y):
27    """
28    除法运算
29    :param x:
30    :param y:
31    :return:
32    """
33    return x / y


34if __name__ == '__main__':
35    fire.Fire()

fire 的改动 就两行

click 是以装饰器的形式作用在目标函数中,要侵入函数本身 argparse 使用起来更麻烦些,要经历解析器初始化,参数定义,解析一套流程(这里就不代码展示了)


fire命令行使用实战

1. 列出所有方法
2. 具体方法帮助

3. 执行命令


更多魔法具体参见官方文档

https://github.com/google/python-fire

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 chafezhou 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • fire让命令行如此简单
    • 原始计算器
      • click改造版
        • fire改造版
        • fire命令行使用实战
          • 1. 列出所有方法
            • 2. 具体方法帮助
            • 3. 执行命令
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档