Hello,
There's something I don't understand about descriptors. On a StackOverflow
discussion
(http://stackoverflow.com/questions/12846116/python-descriptor-vs-property) one
of the answers provides the following descriptors example:
class Celsius( object ):
def __init__( self, value=0.0 ):
self.value= float(value)
def __get__( self, instance, owner ):
return self.value
def __set__( self, instance, value ):
self.value= float(value)
class Temperature( object ):
celsius= Celsius()
farenheit= Farenheit()
... and then gets chided in the comments:
"I believe your descriptor implementation of celsius is not correct. You should
have set the celsius on instance rather than self; If you create two
Temperature objects they will share the same celsius value."
Overall, I have two problems:
1) I don't get the idea behind the 'instance' and 'owner' parameters at all. Is
there some simple tutorial that can explain these?
2) I don't understand the motivation behind the comment. Of course declaring a
class variable would cause celcius to be the same for all objects. Shouldn't we
be instead using self.celcius in, say, __init__() and then everything will work
fine?
I have seen examples
(http://programeveryday.com/post/an-introduction-to-python-descriptors/) where
"instance" is used as keys of a dictionary, but given my argument above, isn't
this approach an overkill?
Regards,
Ankush Thakur
--
https://mail.python.org/mailman/listinfo/python-list