Steve D'Aprano wrote:
On Sun, 1 Oct 2017 08:47 am, Bill wrote:

I spent a few hours experimenting with @property. To my mind it seems
like it would be preferable to just define (override) instance methods
__get__(), __set__(), and possibly __del__(), as desired, as I could
easily provide them with "ideal" customization. Am I overlooking something?
Probably.

You and Ned are both right. Up until a few minutes ago, I wasn't thinking about a class having more than 1 attribute that I wanted to change. And now I realize that __get__ doesn't really make sense in that context (in the back of my mind was the notion that @property defined __get__, __set__ and __del__) and I allowed that to obscure my vision. I was on the verge of giving up anything to do with computers, forever. : )

BTW, your example (below) is very nice! I may have seen something similar before, but I am starting to appreciate it better now. I think all of this would have made a bit more sense (to me), if instead of just "@property", the syntax was "@property.getter". Now I am forced to ask the question, why did they use the underscore (on temperature) in the example on the bottom of this page? Is one forced to introduce new identifiers in order to define a setter?

https://www.programiz.com/python-programming/property

Thanks!
-Bill


This is a particularly simple example, with only getters. How would you write it
by overriding __get__?


class Circle(object):
     def __init__(self, centre, radius):
         self.centre = centre
         self.radius = radius

     @property
     def diameter(self):
         return 2*self.radius

     @property
     def area(self):
         return pi*self.radius**2

     @property
     def circumference(self):
         return pi*self.diameter




--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to