zoukankan      html  css  js  c++  java
  • python fire库的使用

    一. 介绍

    fire是python中用于生成命令行界面(Command Line Interfaces, CLIs)的工具,不需要做任何额外的工作,只需要从主模块中调用fire.Fire(),它会自动将你的代码转化为CLI,Fire()的参数可以说任何的python对象

    二. 安装

    pip install fire

    三. 用法

    实例1 单个函数:python 模块名 参数1 参数2

    在Common目录下新建一个test_fire.py的模块

    import fire
    
    def add(a, b):
        count = a + b
        return count
    
    if __name__ == '__main__':
        fire.Fire(add)

    当不接参数时,执行python test_fire.py会显示帮助信息

    帮助信息里显示了fire.Fire()的参数类型(function)、文件路径、文档字符串、参数用法等信息

    加参数运行的结果如下:

    注意:两种方法调用,一种是直接跟实参,一种是--形参 实参的形式,为了方便,本文采取第一种

    实例2 多个函数:python 模块名 函数名 参数

    import fire
    
    def add(a, b):
        count = a + b
        return count
    
    def sub(a, b):
        result = a - b
        return result
    
    if __name__ == '__main__':
        fire.Fire()

    加上参数运行结果:

    实例3 类(对象) 多个函数:python 模块名 函数名 参数

    import fire
    
    class Calculator(object):
        def add(self, a, b):
            count = a + b
            return count
    
        def sub(self, a, b):
            result = a - b
            return result
    
    if __name__ == '__main__':
        fire.Fire(Calculator)    #这里用类名Calculator或者类的实例化对象Calculator()结果都是一样的

    加参数运行结果:

    注意:

    1. fire 默认使用 - 作为参数分隔符,所以如果你要在命令行传入类似 2017-04-22 的参数时,那么程序接收到的参数就肯定不是 2017-04-22 了,需要使用 --separator 来改变分隔符

    2. fire 会自动区分你在命令行传入的参数的类型,例如 20170422 会自动识别成 inthello 会自动识别成 str'(1,2)' 会自动识别成 tuple'{"name": "Alan Lee"}' 会自动识别成 dict。但是你如果想要传入一个字符串类型的 20170422 怎么办?那就需要这样写:'"20170422"' 或者 "'20170422'" 或者 "20170422",总之呢,就是加一个转义,因为命令行默认会吃掉你的引号

    参考文章

    https://blog.csdn.net/u010099080/article/details/70332074

    https://mp.weixin.qq.com/s/lMOieL_RFRHsh5OW4G4axg

  • 相关阅读:
    使用 VBRichClient 库
    提取文件夹目录的办法
    编程语言转换
    解决linux服务器上matplotlib中文显示乱码问题
    动态规划 53:Maximum Subarray,152:Maximum Subarray,266. Palindrome Permutation 回文全排列
    动态规划:494,576
    ResourceExhaustedError 解决方案
    周赛138场
    leetcode 115
    leetcode 372
  • 原文地址:https://www.cnblogs.com/my_captain/p/9574560.html
Copyright © 2011-2022 走看看