python.magic method 2

thermometer

#摄氏度属性的描述符类
class Celsius:         
    def __init__(self, value = 26):  #温度初始化
        self.value = float(value)    #实例化对象,并转化成浮点数 

    def __get__(self, instance, owner):  #当self的属性被获得的时候,获得摄氏度初始值
        return self.value

    def __set__(self, instance, value):   #当self被设置的时候,获得实例化对象,并转化成浮点数
        self.value = float(value)

#华氏度属性的描述符类
class Fahrenheit:        
     def __get__(self, instance, owner):   #当self 的属性被获得的时候,获得公式: 摄氏度的值*1.8+32
        return instance.cel * 1.8 + 32
     def __set__(self, instance, value):    # 当self被设置的时候,获得公式:(华氏度的值-32)/1.8
        instance.cel = (float(value) - 32) / 1.8


#温度计,调用属性
class Temperature:
    cel = Celsius()    #摄氏度
    fah = Fahrenheit() #华氏度

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326166466&siteId=291194637