欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python庫fire使用教程

 更新時間:2025年01月17日 08:31:57   作者:Python熱愛者  
本文主要介紹了python庫fire使用教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.簡介

目前python命令行解析庫用過的有:argparse(python自帶)、click(Flask作者寫的)

但二者相比fire這個庫,用起來都不夠 “簡單”,fire一行代碼能把函數(shù)導(dǎo)出到命令行窗口。

argparse用法示例

# arg_test.py

import argparse

def counter(file_type=None):
    return {file_type: 100}

# 初始化解析器
parser = argparse.ArgumentParser()
# 定義參數(shù)
parser.add_argument("-f", "--file", help="統(tǒng)計指定文件類型")
# 解析
args = parser.parse_args()
print(counter(args.file))

運(yùn)行:

$ python arg_test.py -f python
{'python': 100}

click用法示例

# firetest.py

import click

@click.command()
@click.option("-f", "--file", help="統(tǒng)計制定文件類型")
def counter(file=None):
    click.echo({file: 100})

if __name__ == '__main__':
    print(counter())

運(yùn)行:

$ python firetest.py -f python
{u'python': 100}

2. fire安裝

# pip安裝:pip install fire
# conda安裝:conda install fire -c conda-forge
# 源碼安裝: git拿到代碼,執(zhí)行:python setup.py install

3. fire使用示例

fire.Fire()直接在程序中調(diào)用 fire.Fire(),不需要修改目標(biāo)函數(shù),fire 會把當(dāng)前模塊下的所有對象導(dǎo)出到命令行中

# firetest.py

import fire

def foo(name):
    return 'foo {name}!'.format(name=name)

def bar(name):
    return "bar {name}".format(name=name)

if __name__ == '__main__':
    fire.Fire()

運(yùn)行:

# 調(diào)用方式:python [文件名] [函數(shù)名] [參數(shù)]

# 函數(shù)名后面直接跟參數(shù)值
$ python firetest.py foo hello
foo hello!
# 也可以顯示地先指定參數(shù)名,再跟參數(shù)值
$ python firetest.py bar --name hello
bar hello!

fire.Fire(<function>)可以指定某個函數(shù)導(dǎo)出到命令行

import fire

def foo(name):
    return 'foo {name}!'.format(name=name)

if __name__ == '__main__':
    fire.Fire(foo)

運(yùn)行:

# 調(diào)用方式:python [函數(shù)名] [參數(shù)]
$ python firetest.py hello
foo hello!

當(dāng) Fire 接收函數(shù) foo 作為參數(shù)時,只加載 foo 函數(shù)到命令行中,此時,在命令行中運(yùn)行時也無需再指定函數(shù)名字,只需要指定參數(shù)就好。

fire.Fire(<dict>)

Fire 不僅可以接收函數(shù),還可以接收字典對象作為參數(shù),可在字典中配置那些函數(shù)需要導(dǎo)出到命令行中。

例如,有加減乘3個函數(shù),我們可以選擇性的選擇其中2個導(dǎo)出到命令行:

import fire

def add(x, y):
    return x + y

def multiply(x, y):
    return x * y

def subtract(x, y):
    return x - y

if __name__ == '__main__':
    fire.Fire({
        'add': add,
        'subtract': subtract,
    })

運(yùn)行:

$ python firetest.py add 1 4
5
$ python firetest.py subtract 1 4
-3
$ python firetest.py multiply 1 4
# multiply 會報錯,因為沒有導(dǎo)出

fire.Fire(<object>)還可以接收類的實例對象

import fire

class Calculator(object):

  def add(self, x, y):
    return x + y

  def multiply(self, x, y):
    return x * y

if __name__ == '__main__':
  calculator = Calculator()
  fire.Fire(calculator)

運(yùn)行:

$ python firetest.py add 10 20
30
$ python firetest.py multiply 10 20
200

到此這篇關(guān)于python庫fire使用教程的文章就介紹到這了,更多相關(guān)python fire內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 教你漂亮打印Pandas DataFrames和Series

    教你漂亮打印Pandas DataFrames和Series

    在今天的文章中,我們將探討如何配置所需的pandas選項,這些選項將使我們能夠“漂亮地打印” pandas DataFrames,需要的朋友可以參考下
    2021-05-05
  • 基于python 字符編碼的理解

    基于python 字符編碼的理解

    下面小編就為大家?guī)硪黄趐ython 字符編碼的理解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Python操作配置文件ini的三種方法講解

    Python操作配置文件ini的三種方法講解

    今天小編就為大家分享一篇關(guān)于Python操作配置文件ini的三種方法講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • chatGPT之Python?API啟用上下文管理案例詳解

    chatGPT之Python?API啟用上下文管理案例詳解

    chatGPT已經(jīng)爆火一段時間了,我想大多數(shù)的開發(fā)者都在默默的在開發(fā)和測試當(dāng)中,可能也是因為這個原因所以現(xiàn)在很難找到關(guān)于開發(fā)中遇到的一些坑或者方法和技巧,這篇文章主要介紹了chatGPT之Python?API啟用上下文管理,需要的朋友可以參考下
    2023-03-03
  • 最新評論