返回顶部
首页 > 资讯 > 后端开发 > Python >Python魔法方法之描述符类的示例分析
  • 747
分享到

Python魔法方法之描述符类的示例分析

2023-06-15 05:06:40 747人浏览 薄情痞子

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

摘要

这篇文章给大家分享的是有关python魔法方法之描述符类的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。描述符类要求:描述符就是将某种特殊类型的类的实例指派给另一个类的属性至少要实现以下的一个方法:•__

这篇文章给大家分享的是有关python魔法方法之描述符类的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

描述符类要求:

描述符就是将某种特殊类型的类的实例指派给另一个类的属性

至少要实现以下的一个方法:

•__get__(self, instance, owner)–用于访问属性,它返回属性的值•__set__(self, instance, value)–将在属性分配操作中调用,不返回任何内容•__delete__(self, instance)–控制删除操作,不返回任何内容

eg:

>>> class MyDecriptor:    def __get__(self,instance,owner):        print("getting...",self,instance,owner)    def __set__(self,instance,value):        print("setting...",self,instance,value)    def __delete__(self,instance):        print("deleting...",self,instance)>>> class Test:    x = MyDecriptor()   #取Mydecriptor类的实例指派给Test类的属性x

测试

Python魔法方法之描述符类的示例分析

eg:

>>> class MyProperty:    def __init__(self,fget = None,fset = None,fdel = None):        self.fget = fget        self.fset = fset        self.fdel = fdel    def __get__(self,instance,owner):        return self.fget(instance)    def __set__(self,instance,value):        self.fset(instance,value)    def __delete__(self,instance):        self.fdel(instance)        >>> class C:    def __init__(self):        self._x = None    def getX(self):        return self._x    def setX(self,value):        self._x = value    def delX(self):        del self._x    x = MyProperty(getX,setX,delX)    >>> c = C()>>> c.x = "HELLOW">>> c.x'HELLOW'>>> c._x'HELLOW'>>> del c.x>>> c._x

eg:

摄氏度转华氏度:华氏度=摄氏度*1.8+32

要求:

•先定义一个温度类,然后定义两个描述符类用于描述摄氏度和华氏度两个属性。
•要求两个属性会自动进行转换,也就是说你可以给摄氏度这个属性赋值,然后打印的华氏度属性是自动转换后的结果。

ss Celsius:  #摄氏度描述符类    def __init__(self,value = 26.0):#self为描述符类自身(此为摄氏度描述符类)的实例(此为cel)        self.value = float(value)    def __get__(self,instance,owner):#instance是这个描述符的拥有者所在的类的实例(此为temp)        return self.value    def __set__(self,instance,value):#owner是这个描述符的拥有者所在的类本身(此为温度类)        self.value = float(value)class Fahrenheit:   #华氏度描述符类    def __get__(self,instance,owner):        return instance.cel * 1.8 +32  #摄氏度转华氏度    def __set__(self,instance,value):        instance.cel = ((float)(value)- 32)/ 1.8         ## instance.cel 则会执行Temperature.cel,接着执行Celsius类中的__set__方法        class Temperature:   #温度类    cel = Celsius()   #设置摄氏度属性(描述符类的实例指派给了温度类的属性)    fah = Fahrenheit()# temp.fah ,当属性fah被赋值的时候,则会执行Fahrenheit描述符类的__set__方法>>> temp = Temperature()>>> temp.cel26.0>>> temp.fah78.80000000000001>>> temp.fah = 78.8>>> temp.cel25.999999999999996

Python有哪些常用库

python常用的库:1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。

感谢各位的阅读!关于“Python魔法方法之描述符类的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Python魔法方法之描述符类的示例分析

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

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

猜你喜欢
  • Python魔法方法之描述符类的示例分析
    这篇文章给大家分享的是有关Python魔法方法之描述符类的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。描述符类要求:描述符就是将某种特殊类型的类的实例指派给另一个类的属性至少要实现以下的一个方法:•__...
    99+
    2023-06-15
  • 详解Python魔法方法之描述符类
    描述符类要求: 描述符就是将某种特殊类型的类的实例指派给另一个类的属性 至少要实现以下的一个方法: •__get__(self, instance, owner) ...
    99+
    2024-04-02
  • Python黑魔法Descriptor描述符的实例解析
    在Python中,访问一个属性的优先级顺序按照如下顺序: 1:类属性 2:数据描述符 3:实例属性 4:非数据描述符 5:__getattr__()方法 这个方法的完整定义如下所示: def __ge...
    99+
    2022-06-04
    实例 黑魔法 Python
  • python类中成员描述符的使用方法
    这篇文章将为大家详细讲解有关python类中成员描述符的使用方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开发,众多...
    99+
    2023-06-14
  • php中魔术方法的示例分析
    这篇文章给大家分享的是有关php中魔术方法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php魔术方法:1、【_sleep()】控制对象序列化时真正处理的部分;2、【_wakeup()】在反序列化后还原...
    99+
    2023-06-14
  • css魔法组合的示例分析
    这篇文章主要介绍css魔法组合的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!魔法组合这个小组合实际上可以防止你在 HTML 中遇到的大多数布局错误的问题。我们确实不希望水平滑块或绝对定位的项目做他们想做的事...
    99+
    2023-06-27
  • python之CSF算法的示例分析
    这篇文章给大家分享的是有关python之CSF算法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 引言机载LiDAR可以获取快速、低成本地获取大区域的高精度地形测量值。为了获取高精度的地形数据(厘米...
    99+
    2023-06-20
  • wordpress分类描述支持显示图片的功能实现方法
    有的时候,我们希望在我们的分类页面打印分类描述,以此来介绍我们的分类。但在WordPress中,我们却无法在分类描述中使用图片,即<img>标签,那该怎么办呢?本文提供一段简短的代码,即可让你的分类描述框中的...
    99+
    2022-06-12
    wordpress 分类 图片
  • python字符串乘法的示例分析
    这篇文章将为大家详细讲解有关python字符串乘法的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。字符串乘法在Python中,不仅可以乘以数字,还可以乘以字符串。例如:关于“python字符串乘法...
    99+
    2023-06-27
  • Python使用描述符实现属性类型检查的案例解析
    目录1、如何使用描述符对实例属性做类型检查?实际案例:解决方案:2、代码演示1、如何使用描述符对实例属性做类型检查? 实际案例: 在某项目中,我们实现了一些类,并希望能像静态类型语言...
    99+
    2024-04-02
  • java基础之方法的示例分析
    这篇文章将为大家详细讲解有关java基础之方法的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JAVA 异常分类及处理 异常分类Throwable 是 Java 语言中所有错误或异常的超类。下一层...
    99+
    2023-06-20
  • Python特殊方法的示例分析
    小编给大家分享一下Python特殊方法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!运算符无关特殊方法运算符相关特殊方法以上是“Python特殊方法的示...
    99+
    2023-06-14
  • Python聚类算法之DBSACN实例分析
    本文实例讲述了Python聚类算法之DBSACN。分享给大家供大家参考,具体如下: DBSCAN:是一种简单的,基于密度的聚类算法。本次实现中,DBSCAN使用了基于中心的方法。在基于中心的方法中,每个数据...
    99+
    2022-06-04
    算法 实例 Python
  • Python数据分析JupyterNotebook3魔法命令详解及示例
    目录1、魔法命令介绍%lsmagic:列出所有magics命令%quickref:输出所有魔法指令的简单版帮助文档%Magics_Name?:输出某个魔法命令详细帮助文档2、...
    99+
    2024-04-02
  • ES6之Proxy中get方法的示例分析
    这篇文章主要介绍了ES6之Proxy中get方法的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Proxy是在ES2015(ES6)...
    99+
    2024-04-02
  • java图搜索算法之图的对象化描述示例详解
    目录一、前言二、什么是图三、怎么存储一个图的结构1、邻接矩阵2、邻接表3、图对象化表示四、图的作用你好,我是小黄,一名独角兽企业的Java开发工程师。 校招收获数十个offer,年薪...
    99+
    2024-04-02
  • Java面向对象之方法中内部类的示例分析
    这篇文章主要为大家展示了“Java面向对象之方法中内部类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java面向对象之方法中内部类的示例分析”这篇文章吧。public cl...
    99+
    2023-06-02
  • python中断言方法的示例分析
    这篇文章主要为大家展示了“python中断言方法的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python中断言方法的示例分析”这篇文章吧。pytho...
    99+
    2024-04-02
  • Java字符串逆序方法的示例分析
    小编给大家分享一下Java字符串逆序方法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.简述记录下实现字符串逆序的两种方法:第一种方法比较暴力,通过字...
    99+
    2023-06-29
  • JavaScript基础之静态方法和实例方法的示例分析
    小编给大家分享一下JavaScript基础之静态方法和实例方法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!直接定义在...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作