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
测试:
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常用的库: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
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0