我正在尝试使用 python 描述符解决问题。代码如下
class Celsius( object ):
def __init__( self, value=0.0 ):
self.value= float(value)
def __get__( self, instance, owner ):
return float(self.value)
def __set__( self, instance, value ):
self.value= float(value)
class Fahrenheit( object ):
def __get__( self, instance, owner ):
return (instance.celsius * 9 / 5 + 32.0)
def __set__( self, instance, value ):
instance.celsius= (float(value)-32.0) * 5 / 9
class Temperature( object ):
def __init__(self, fahrenheit):
self.fahrenheit = fahrenheit
fahrenheit = Fahrenheit()
celsius = Celsius()
t1 = Temperature(32)
print(t1.fahrenheit, t1.celsius)
t1.celsius = 0
print(t1.fahrenheit, t1.celsius)
预期的 O/P 是
32 0.0
32.0 0.0
但我明白了
32.0 0.0
32.0 0.0
请帮助我应该在哪里更改或者是否有其他更好的方法。