亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python庫(kù)fire使用教程

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

1.簡(jiǎn)介

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

但二者相比f(wàn)ire這個(gè)庫(kù),用起來(lái)都不夠 “簡(jiǎn)單”,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)計(jì)指定文件類型")
# 解析
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)計(jì)制定文件類型")
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 會(huì)把當(dāng)前模塊下的所有對(duì)象導(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>)可以指定某個(gè)函數(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ù)時(shí),只加載 foo 函數(shù)到命令行中,此時(shí),在命令行中運(yùn)行時(shí)也無(wú)需再指定函數(shù)名字,只需要指定參數(shù)就好。

fire.Fire(<dict>)

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

例如,有加減乘3個(gè)函數(shù),我們可以選擇性的選擇其中2個(gè)導(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 會(huì)報(bào)錯(cuò),因?yàn)闆](méi)有導(dǎo)出

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

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庫(kù)fire使用教程的文章就介紹到這了,更多相關(guān)python fire內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 教你漂亮打印Pandas DataFrames和Series

    教你漂亮打印Pandas DataFrames和Series

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

    基于python 字符編碼的理解

    下面小編就為大家?guī)?lái)一篇基于python 字符編碼的理解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Python操作配置文件ini的三種方法講解

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

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

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

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