# Python Fire可以做什么? 这是一个通过暴露复杂系统内部接口,利用管道和CLI来方便测试的工具。 它可以自动扫描module, object, class, function并自动构建管道 Expose functionality to user by archive them in a function / module / object / class / dict # Python fire 源码分析: ## __main__.py 主要负责import被使用的module,或者file,将其导入Fire.fire()函数。 ## core.py 原型:Fire(component=None, command=None, name=None). fire的一般执行过程如下: 1. 从参数列表pop一个参数 1. 根据参数的类型 1. 实例化被使用的class 2. 或者调用命令所指向的function 3. 或者查找命令指向的属性 1. 返回步骤1 当不再能够继续执行时,fire将结果序列化后输出 我们可以注意到其比较核心的功能需要用到静态代码分析、反射、模式匹配