Python Fire - 一个好用的命令行生成库

有没有这样一种感觉:

学了 Python,好歹也会一门语言了,偶尔想要自己写点小工具来用用,当代码写好后,怎么运行是个问题了。难道,每次要用的时候都要打开编码工具来运行?
写个带界面的?但是 UI 库都好难学,web 框架更难学。

那就写个命令行呗!

但是 Python 自带的命令行用起来并不方便。

现在有一个更简单方便的库,由 Google 开源的 fire库。

我们来学习一下怎么用。

首先安装 fire 库:

pip install fire

看官方一个简单的例子:
新建一个文件,取名为 hello.py

# hello.py
import fire

# 命令行执行的函数
def hi(name='world'):
    return f'hello, {name}'

if __name__ == '__main__':
    # 将需要在命令行中执行的函数名传递给 Fire
    fire.Fire(hi)

这是一个简单的例子,将你需要在命令行中执行的函数名传递给 fire 库中 Fire__init__ 方法即可。

那我们看一下如何使用呢?

使用命令行运行该脚本。

$ python hello.py
hello, world    # 运行 hi 函数,参数取默认值
$ python hello.py Nemo
hello, Nemo   # 运行 hi 函数,参数为传入的值 Nemo
$ python hello.py --name=Nemo
hello, Nemo   # 指定参数值,参数名=参数值的形式
$ python hello.py --name Nemo
hello, Nemo    # 也可以使用空格分隔参数与参数值

通过上面的例子,我们可以看到,只需要引入fire库,并把你写的函数传递给Fire的初始化方法即可,就可以在命令行中使用该函数。

如果你写的是类呢?

类似的使用方法:
新建一个文件 calc.py

# calc.py
import fire

class Calculator(object):
    """A simple calculator class."""
    
    def double(self, n):
        return f'n * 2 = { n * 2}'

    def sub(self, a, b):
        return f'a - b = { a - b }'

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

将类名传递给 Fire 的初始化方法即可。

在使用时,需要加上类中的方法名:

写一个命令行工具就很简单了!

fire 更复杂的使用,请待下回分解。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值