在python中,命令行接口經常使用的argparse 和click,可是相對於python-fire 來講靈活度太缺了,fire能夠直接將python中的函數,以命令行顯示.html
簡單的介紹幾個例子:python
#!/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()沒有指定名稱時:git
須要在執行命令行時,帶入函數名: python fire-demo.py demo ,同時,若是函數有參數是,須要輸入參數,否則會不錯,並提示:github
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」函數
1 python_demo python fire-demo.py demo "google" 2 hello google !
或者咱們也能夠這樣:ui
#!/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)
只須要執行:google
python_demo python fire-demo.py google
hello google !
當咱們面對一個類Class的時候:spa
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;
咱們只須要執行:命令行
python_demo python fire-demo.py ho --type "gxjun" hodemo "google" gxjun hello google !
固然咱們也能夠將類寫入Fire中:code
python_demo python fire-demo.py --type gxjun hodemo google
gxjun hello google !