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

Python实用模块(十二)fire

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

软硬件环境

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

fire

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

安装fire

  1. pip install fire
  1. import fire
  2. def hello(name):
  3. return 'Hello {name}!'.format(name=name)
  4. if __name__ == '__main__':
  5. fire.Fire()

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

  1. python example.py hello world

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

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

  1. import fire
  2. def add(x, y):
  3. return x + y
  4. def multiply(x, y):
  5. return x * y
  6. if __name__ == '__main__':
  7. fire.Fire({
  8. 'add': add,
  9. 'multiply': multiply,
  10. })

运行

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

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

参考资料

喜欢 (0)

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