python描述符详解
1描述符:
描述符是指将某种特殊类型的类的实例支配给另外一个类的属性。
对于特殊类型必须实现以下三个方法中至少一个方法:
def __get__(self,instance,owner):
-用于访问属性,它返回属性的值
def __set__(self,instance,value):
-将在属性的分配操作中调用,不返回任何内容
def __delete__(self,instance):
-控制删除操作,不返回任何内容
2、温度类的举例:
要求:
(1)定义一个温度类,然后定义两个描述符类用于描述摄氏温度和华氏温度两个属性;
(2)要求两个属性之间可以相互自动转换。
实现代码如下:
class Cel:
def __init__(self,value=26.0):
self.value=float(value)
def __get__(self,instance,owner):
return self.value
def __set__(self,instance,value):
self.value=float(value)
class Fah:
def __get__(self,instance,owner):
return instance.cel*1.8+32
def __set__(self,instance,value):
instance.cel=(float(value)-32)/1.8
class Temperature:
cel=Cel()
fah=Fah()
运行结果如下: