python-fire 链式调用解决命令行无法自动结束

news/2024/11/16 21:36:49/

python-fire 链式调用,可以一个命令行运行多个命令(也就是连续调用多个方法),

calculator.py 代码


import fireclass Calculator:def __init__(self):self.result = 0self.express = '0'def __str__(self):print('完成')return f'{self.express} = {self.result}'# return ''def add(self, x):self.result += xself.express = f'{self.express}+{x}'return selfdef sub(self, x):self.result -= xself.express = f'{self.express}-{x}'return selfdef mul(self, x):self.result *= xself.express = f'({self.express})*{x}'return selfdef div(self, x):self.result /= xself.express = f'({self.express})/{x}'return selfif __name__ == '__main__':fire.Fire(Calculator)

命令行 python calculator.py add 5 sub 2 mul 3 div 4,  这个命令行可以实现无限次连续加减乘除,但是如果你不写 def _str_,那么代码就无法自动结束,因为一直在return self等待下一个命令.

可以加一个def  get_result 方法 return self.result,那么命令行就是 python calculator.py add 5 sub 2 mul 3 div 4 get_result,这样不太优雅,本人建议写 _str_ ,这样就可以自动结束命令行,也能自动获取结果.


http://www.ppmy.cn/news/1201887.html

相关文章

【HarmonyOS】HarmonyOS Test测试用例中一些断言API的使用

【关键词】 单元测试框架、HarmonyOS Test、assertThrowError、assertFail、assertEqual 【测试代码及测试结果展示】 这里以新建API9工程自动生成的ohosTest来编写单元测试代码。 1、 测试代码: import { describe, it, expect } from ohos/hypium import abil…

CSS 简介

一、CSS简介: CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文件扩展名为…

ZooKeeper调优

服务器硬件配置 建议 Zookeeper 的服务器最好专属(或是资源隔离的)。磁盘由于 Zookeeper 的数据写入磁盘,强烈建议要使用 SSD。 Linux操作系统优化 Zookeeper 的性能会很明显受到交换分区的影响。建议部署 Zookeeper 的服务器关闭交换分区功能或是通过内核参数调整,减少…

「掌握创意,释放想象」——Photoshop 2023,你的无限可能!

Adobe Photoshop 2023(PS2023) 来了,全世界数以百万计的设计师、摄影师和艺术家使用 Photoshop 将不可能变为可能。从海报到包装,从基本的横幅到漂亮的网站,从令人难忘的徽标到引人注目的图标,Photoshop 2023让创意世界不断前进。借助直观的工…

Django初窥门径-自定义用户模型

前言 自定义用户模型在Django应用中是一个重要的话题,它涉及到如何根据您的项目需求以及特定的用户身份验证和授权需求来调整用户模型。在以下前言中,我将讲述为什么自定义用户模型是如此重要以及其潜在的优势: 随着Web应用的不断发展&…

Gson 解析容错框架

官网 GitHub - getActivity/GsonFactory: Gson 解析容错框架,愿从此再无 Json 解析报错,另外还适配了 Kotlin 默认值,和后台返回空值的情况 项目简介 Gson 解析容错框架,愿从此再无 Json 解析报错,另外还适配了 Kot…

『MySQL快速上手』-②-数据库基础

文章目录 1.什么是数据库2.MySQL的基本使用2.1 MySQL的安装2.2 连接MySQL服务器2.3 服务器、数据库与表的关系2.4 使用案例 3.SQL语句分类4.存储引擎4.1 什么是存储引擎4.2 查看存储引擎 1.什么是数据库 存储数据用文件就可以了,为什么还要弄个数据库?文…

SwissArmyTransformer瑞士军刀工具箱使用手册

Introduction sat(SwissArmyTransformer)是一个灵活而强大的库,用于开发您自己的Transformer变体。 sat是以“瑞士军刀”命名的,这意味着所有型号(例如BERT、GPT、T5、GLM、CogView、ViT…)共享相同的backo…