Skip to content

Commit 2dc9b9e

Browse files
committed
update 初探 fire
1 parent c8c2eec commit 2dc9b9e

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

contents/Python/cmdline/fire-1.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ pip install fire
3131

3232
回忆下使用 `argparse``docopt``click` 实现命令行程序的步骤:
3333

34-
- 对于 `argparse` 来说,要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑
35-
- 对于 `docopt` 来说,要先定义定义接口描述,再解析命令行,最后实现业务逻辑
36-
- 对于 `click` 来说,就是实现业务逻辑和通过装饰器的方式定义参数
34+
- 对于 `argparse` 来说,要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑(四步)
35+
- 对于 `docopt` 来说,要先定义定义接口描述,再解析命令行,最后实现业务逻辑(三步)
36+
- 对于 `click` 来说,就是实现业务逻辑和通过装饰器的方式定义参数(两步)
3737

38-
它们的实现步骤越来越简单,从四步简化到了两步。而今天的主角 `fire` 则是跟进一步,只需实现业务逻辑就够了。
38+
它们的实现步骤越来越简单,从四步简化到了两步。而今天的主角 `fire` **只需一步,现业务逻辑就够了。**
3939

4040
这简直简单的不可思议,为什么这样做就够了?我们不妨考虑下 Python 中的函数,函数是不是可以对应一个命令行程序,而函数的参数可以对应命令行程序的参数和选项呢?再看看 Python 中的类,一个类是不是可以对应一个命令行程序,而类中的每个实例方法就可以对应子命令,实例方法中的参数就是对应子命令的参数和选项。
4141

0 commit comments

Comments
 (0)