软硬件环境
- ubuntu 18.04 64bit
- anaconda3 with python 3.7.1
- fire
fire
fire
与python实用模块推荐(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
如果参数是类的话,跟字典传递的功能类似,即类的每个方法都可以接受命令行参数。