返回顶部
首页 > 资讯 > 后端开发 > Python >Python中singledispatch库的具体用法介绍
  • 182
分享到

Python中singledispatch库的具体用法介绍

2023-06-16 21:06:40 182人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“python中singledispatch库的具体用法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中singledispatch库的具体用法介绍”吧!sing

本篇内容主要讲解“python中singledispatch库的具体用法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习Python中singledispatch库的具体用法介绍”吧!

singledispatch

想象一下,你有一个有 Circle、Square 等类的“形状”库。

Circle 类有半径、Square 有边、Rectangle 有高和宽。我们的库已经存在,我们不想改变它。

然而,我们想给库添加一个面积计算。如果我们不会和其他人共享这个库,我们只需添加 area 方法,这样我们就能调用 shape.area() 而无需关心是什么形状。

虽然可以进入类并添加一个方法,但这是一个坏主意:没有人希望他们的类会被添加新的方法,程序会因奇怪的方式出错。

相反,functools 中的 singledispatch 函数可以帮助我们。

@singledispatchdef get_area(shape):    raise NotImplementedError("cannot calculate area for unknown shape",                              shape)

get_area 函数的“基类”实现会报错。这保证了如果我们出现一个新的形状时,我们会明确地报错而不是返回一个无意义的结果。

@get_area.reGISter(Square)def _get_area_square(shape):    return shape.side ** 2@get_area.register(Circle)def _get_area_circle(shape):    return math.pi * (shape.radius ** 2)

这种方式的好处是如果某人写了一个匹配我们代码的形状,它们可以自己实现 get_area

from area_calculator import get_area @attr.s(auto_attribs=True, frozen=True)class Ellipse:    horizontal_axis: float    vertical_axis: float @get_area.register(Ellipse)def _get_area_ellipse(shape):    return math.pi * shape.horizontal_axis * shape.vertical_axis

调用 get_area 很直接。

print(get_area(shape))

这意味着我们可以将大量的 if isintance()/elif isinstance() 的代码以这种方式修改,而无需修改接口。下一次你要修改 if isinstance,你试试 `singledispatch!

到此,相信大家对“Python中singledispatch库的具体用法介绍”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Python中singledispatch库的具体用法介绍

本文链接: https://lsjlt.com/news/285329.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中singledispatch库的具体用法介绍
    本篇内容主要讲解“Python中singledispatch库的具体用法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中singledispatch库的具体用法介绍”吧!sing...
    99+
    2023-06-16
  • Python中关于函数的具体用法范例以及介绍
    目录1.函数的介绍2.函数的定义和调用3.函数的参数4.参数的分类4.1.位置参数4.2.关键字参数4.3.缺省参数4.4.不定长参数1.不定长参数*args2.不定长参数* * k...
    99+
    2024-04-02
  • Linux系统中dd命令的具体用法介绍
    本篇内容主要讲解“Linux系统中dd命令的具体用法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统中dd命令的具体用法介绍”吧!dd - 转换和拷贝文件当进行非强制的转换的时候...
    99+
    2023-06-12
  • Mapstruct的具体介绍与使用
    我是 ABin-阿斌:写一生代码,创一世佳话,筑一览芳华。 如果小伙伴们觉得我的文章不错,记得一键三连哦 文章目录 一、mapstruct简介二、mapstruct与其他映射对比三、m...
    99+
    2023-09-03
    java
  • Python中关于文件的具体操作与介绍
    目录文件的介绍文件的打开与关闭1.打开文件2.写数据(write)3.读数据(read)4.读数据(readlines)5.读数据(readline)6.可写 ,追加(a)二进制文件...
    99+
    2024-04-02
  • Python中安装库的常用方法介绍
    目录方法一:需要在网络条件下安装方法二:离线安装方法三:换源安装总结方法一:需要在网络条件下安装 win+R进入运行框输入命令cmd 点击确定进入 普通下载:pip instal...
    99+
    2024-04-02
  • 如何运用Jquery具体实例介绍AJAX的用法
    今天就跟大家聊聊有关如何运用Jquery具体实例介绍AJAX的用法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在jquery中ajax实现方法分类...
    99+
    2024-04-02
  • Python中常用的四种工具介绍
    本篇内容介绍了“Python中常用的四种工具介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python作为粘合剂互不兼容的系统常常需要被...
    99+
    2023-06-17
  • python EasyOCR库实例用法介绍
    说明 EasyOCR是一个用python编写的OCR三方库。可以在python中调用,用来识别图像中的文字,并输出为文本。 支持80多种语言的识别,识别精度高,甚至要超过PaddleOCR。 安装命令 pip i...
    99+
    2022-06-02
    python EasyOCR库
  • Python中jieba库的介绍与使用
    目录前言:目录:一、jieba库基本介绍(1)jieba库概述 (2)jieba分词的原理二、jieba库使用说明 (1)jieba分词的三种模式三:jieba库...
    99+
    2023-03-02
    Python中jieba库使用 Python中jieba库
  • python中with的具体用法
    目录简介深入代码简介 with的基本表达式如下 with context_expression [as target(s)]: ... with-body 其中co...
    99+
    2023-02-23
    python with使用 python with
  • python实用小工具介绍
    一、秒级启动一个HTTP下载服务器在实际工作中,时不时会有这样的一个需求:将文件传给其他同事。将文件传给同事本身并不是一个很繁琐的工作,现在的聊天工具一般都支持文件传输。但是,如果需要传送的文件较多,那么,操作起来就会比较麻烦。此外,如果文...
    99+
    2023-01-31
    小工具 python
  • Unity PC版Log的具体位置介绍
    在某个版本更新后,Unity Log不在位于Data文件夹中 具体位置: C:\Users\xxx用户\AppData\LocalLow\xx公司\xx项目 补充:UnityW...
    99+
    2024-04-02
  • DNS轮循的具体介绍是什么
    DNS轮循的具体介绍是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。DNS轮循是指通过配置DNS使相同的域名解释不同的IP,随机使用其中某台主机的技术。通过DNS轮循系统可...
    99+
    2023-06-13
  • Discuz云平台的具体功能介绍
    Discuz云平台的具体功能介绍与代码示例 现如今,随着互联网的快速发展,论坛已经成为人们交流、分享信息的重要平台之一。Discuz作为国内知名的论坛程序之一,其云平台为用户提供了便捷...
    99+
    2024-03-09
    云服务 (个字)
  • Python中os模块的用法介绍
    今天小编给大家分享的是Python中os模块的用法介绍,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。1、说明os.path.exists():用于判断某个路径(文件或文件夹)是否存在...
    99+
    2023-06-15
  • Python socket编程在具体应用中前两个步骤是怎么介绍的
    这篇文章将为大家详细讲解有关Python socket编程在具体应用中前两个步骤是怎么介绍的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、套接字套接字是为特定网络协议(例如TCP/IP,...
    99+
    2023-06-17
  • Python遗传算法Geatpy工具箱使用介绍
    目录一、 什么是遗传算法?二、 遗传算法库Geatpy2.1 遗传算法工具箱Geatpy参数介绍三、最佳实践3.1 代码示例 | 参数模板3.2 最佳实践一、 什么是遗传算法? 遗传...
    99+
    2024-04-02
  • Python中str.format()方法的具体使用
    目录1. 术语说明 2. 简单字段名 2.1 简单字段名的说明 2.2 省略字段名 2.3 数字形式的简单字段名 2.4 变量名形式的简单字段名 2.5 简单字段名的混合使用 2.6...
    99+
    2024-04-02
  • python中xlwt模块的具体用法
    目录一、前言二、基础操作三、样式优化1、设置行列宽度2、设置文本居中3、设置边框4、设置字体样式5、综合代码一、前言 xlwt模块是python中专门用于写入Excel的拓展模块,可...
    99+
    2023-02-23
    python xlwt模块
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作