生成命令行接口--google开源的fire使用体验【python-fire】
在python中,命令行接口常用的argparse 和click,但是相对于python-fire 来说灵活度太缺了,fire可以直接将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()没有指定名称时:
需要在执行命令行时,带入函数名: python fire-demo.py demo ,同时,如果函数有参数是,需要输入参数,不然会不错,并提示:
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 !
或者我们也可以这样:
#!/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)
只需要执行:
python_demo python fire-demo.py google
hello google !
当我们面对一个类Class的时候:
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中:
python_demo python fire-demo.py --type gxjun hodemo google
gxjun hello google !
编程是一种快乐,享受代码带给我的乐趣!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决