前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >生成命令行接口--google开源的fire使用体验【python-fire】

生成命令行接口--google开源的fire使用体验【python-fire】

作者头像
Gxjun
发布2018-12-19 16:37:51
8270
发布2018-12-19 16:37:51
举报
文章被收录于专栏:mlml

在python中,命令行接口常用的argparse 和click,但是相对于python-fire 来说灵活度太缺了,fire可以直接将python中的函数,以命令行显示.

简单的介绍几个例子:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#filename:  fire-demo.py 

__author__ = 'xijun1'
import fire


def demo(param):
    """
    just a demo
    :param param:  any str
    :return:
    """
    print "hello {} !".format(param)
    return;


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

执行的格式为:  python 如果fire.Fire()没有指定名称时:

需要在执行命令行时,带入函数名:   python  fire-demo.py  demo ,同时,如果函数有参数是,需要输入参数,不然会不错,并提示:

代码语言:javascript
复制
 1 python_demo python fire-demo.py demo
 2 Fire trace:
 3 1. Initial component
 4 2. Accessed property "demo"
 5 3. ('The function received no value for the required argument:', 'param')
 6 
 7 Type:        function
 8 String form: <function demo at 0x10e424c80>
 9 File:        ~/github/python_demo/fire-demo.py
10 Line:        20
11 Docstring:   just a demo
12 :param param:  any str
13 :return:
14 
15 Usage:       fire-demo.py demo PARAM
16              fire-demo.py demo --param PARAM

如果带入参数: python  fire-demo.py  demo “google”

代码语言:javascript
复制
1  python_demo python fire-demo.py demo  "google" 
2 hello google !

或者我们也可以这样:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'xijun1'
import fire


def demo(param):
    """
    just a demo
    :param param:  any str
    :return:
    """
    print "hello {} !".format(param)
    return;



if __name__ == '__main__':
    fire.Fire(demo)

只需要执行:

代码语言:javascript
复制
python_demo python fire-demo.py google
hello google !

当我们面对一个类Class的时候:

代码语言:javascript
复制
class ho:
    def __init__(self,type):
        self.type = type
        pass

    def hodemo(self, param):
        """

        :param param: any string
        :return:
        """
        print "{} hello {} !".format( self.type,param)
        return;

我们只需要执行:

代码语言:javascript
复制
python_demo python fire-demo.py ho --type "gxjun"  hodemo "google"
gxjun hello google !

当然我们也可以将类写入Fire中:

代码语言:javascript
复制
python_demo python fire-demo.py --type  gxjun hodemo google
gxjun hello google !
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档