|
这是一个关于类的描述符的问题:
class Celsius:
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 Fahrenheit:
def __get__(self,instance,owner):
return (owner.cel * 1.8 + 32)
def __set__(self,instance,value):
instance.cel = ((float(value) - 32) / 1.8)
class Temperature():
cel = Celsius()
fah = Fahrenheit()
为什么运行的时候输入:a.cel = 30
可以算出a.fah = 86
而输入:a.fah = 无论什么值
结果都是30(或初始值26) |
|