欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入我们的社群。

Python实用模块(十二)fire

实用模块 迷途小书童 5年前 (2019-12-03) 6401次浏览 0个评论

软硬件环境

  • ubuntu 18.04 64bit
  • anaconda3 with python 3.7.1
  • fire

fire

firepython实用模块推荐(1)_click_pathlib中介绍过click模块功能类似,但是fire使用起来更加的方便简单(基本上不用写代码及文档注释),功能更加强大。

安装fire

pip install fire
import fire

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

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

如上面的示例所示,只需要fire.Fire()就完成了命令行参数的构建,运行方法是

python example.py hello world

其中example.py是文件名,hello是方法名,world是传递给hello方法的参数;另外你可以明确的给方法构建,如下调用fire.Fire(hello),那么运行的时候就可以省略掉hello方法了,python example.py world

fire.Fire()的参数可以是方法,对象,类,字典,来看个字典的例子

import fire

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

def multiply(x, y):
  return x * y

if __name__ == '__main__':
  fire.Fire({
      'add': add,
      'multiply': multiply,
  })

运行

$ python example.py add 1 2
3
$ python example.py multiply 3 4
12

如果参数是类的话,跟字典传递的功能类似,即类的每个方法都可以接受命令行参数。

参考资料

喜欢 (0)

您必须 登录 才能发表评论!