fire库:实现直接用命令行调用Python函数、类、模块、对象

诸神缄默不语-个人CSDN博文目录

Python Fire是一个由Google开发的开源库,它能够自动将任何Python对象(无论是函数、类、模块、甚至对象实例)转换为命令行接口(CLI)。这意味着你可以非常轻松地将一个已有的Python脚本或程序变为一个可以通过命令行参数调用的工具,而无需编写额外的CLI处理代码。Fire不仅提高了代码的重用性,也使得终端操作变得异常简单。

库文档:The Python Fire Guide - Python Fire

功能特点

  • 自动生成CLI:Fire会自动将Python函数的参数转换为CLI的参数。
  • 类型安全:它会根据函数签名自动转换命令行中的参数类型。
  • 支持复杂对象:Fire能处理复杂的对象,如类实例等,并能通过命令行与之交互。
  • 灵活易用:即便是对于复杂的应用程序,也可以很容易地集成Fire来创建CLI。

安装Fire

安装Python Fire库非常简单,你只需要通过pip安装即可:

pip install fire

使用方法

fire.Fire()

用命令行调用脚本中的所有对象

修改Python脚本

import fire

def hello(name):
  return 'Hello {name}!'.format(name=name)

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

现在,你可以通过命令行传递参数来调用它:

$ python example.py hello World
Hello World!

不改Python代码,直接调用

Python代码:

def hello(name):
  return 'Hello {name}!'.format(name=name)
$ python -m fire example hello --name=World
Hello World!

或者

$ python -m fire example.py hello --name=World
Hello World!

调用函数

假设你有一个简单的Python函数,你希望能通过命令行来调用它:

import fire

def hello(name):
  return 'Hello {name}!'.format(name=name)

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

现在,你可以通过命令行传递参数来调用它:

$ python example.py World
Hello World!

其他可行的写法:

import fire

def hello(name):
  return 'Hello {name}!'.format(name=name)

def main():
  fire.Fire(hello)

if __name__ == '__main__':
  main()
import fire

def hello(name):
  return 'Hello {name}!'.format(name=name)

def main():
  fire.Fire(hello)

类和对象

Fire也支持直接从类创建CLI。假设你有一个类:

import fire

class Calculator(object):
    """一个简单的计算器类,用于演示fire的使用。"""

    def add(self, x, y):
        return x + y

    def subtract(self, x, y):
        return x - y

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

保存为calculator.py。现在,你可以通过命令行调用它的方法了:

$ python calculator.py add 10 20
30
$ python calculator.py subtract 30 10
20

结论

Python Fire是一个功能强大且易于使用的库,它可以帮助开发者快速地将任何Python程序转换为CLI工具。通过上述示例,你可以看到如何使用Fire来处理函数、类及其实例。Fire的自动化特性能显著提升开发效率,减少编写样板代码的需要。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诸神缄默不语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值