I'm trying to solve a problem using python Descriptors.. Code is as below
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)
Expected O/P is
32 0.0
32.0 0.0
But I get
32.0 0.0
32.0 0.0
Please help where should I change or if there is any other better way.