> -----Original Message----- > From: Tony Cappellini [mailto:[EMAIL PROTECTED] > Sent: Thursday, February 08, 2007 5:41 PM > To: Carroll, Barry > Subject: re:Overloading assignment operator > > Hello Barry > > I'm trying to understand you post > > my question is, should this line > > result = property(get_result, set_result) > > actually be > > self.result = property(get_result, set_result) > > if result is an instance variable? > > Or did you intend it to be a class variable? > > Properties always confused me. > > > thanks > > Overloading assignment operator > Carroll, Barry Barry.Carroll at psc.com > Wed Jan 24 00:32:34 CET 2007 > > Hello, Achim, > > * ...here is where > * properties become useful. you can create a getter, setter, and even a > * deleter and doc string if you want. here's how you use it... add the > * following to your class: > > * def get_result(self): > * return self.__result > * > * def set_result (self, expression): > * self.__result = expression > * > * result = property(get_result, set_ result, doc='result of operations') > * > * ----- > * > > I have tested this using the admittedly simple-minded code snipped > below. > > >>>>>>>>>> > @BCARROLL[Python]|3> class Aclass: > |.> def __init__(self): > |.> __result = None > |.> def get_result(self): > |.> return self.__result > |.> def set_result (self, result): > |.> self.__result = result > |.> result = property(get_result, set_result, > doc='result of expression') > |.> > @BCARROLL[Python]|5> a = Aclass() > @BCARROLL[Python]|7> a.result = 2*3 > @BCARROLL[Python]|8> a.result > <8> 6 > @BCARROLL[Python]|9> a.result = 25.0 * 5.25 > @BCARROLL[Python]|10> a.result > <10> 131.25 > @BCARROLL[Python]|11> Hello, Tony:
First off, it's always a good idea to respond to the mailing list instead of directly to an individual. Everyone benefits from the information instead of just one person. Besides, if I make a mistake (something I fo depressingly often) someone else on the list can correct it so you get the right info. Anyway, to your question: "result" vs "self.result". Look at the interpreter session snippet above. The assignment to "result" is inside the class definition, so it is an attribute of Aclass. At this point "Aclass.result" is indeed a class variable. Or, perhaps more correctly, a class property. However, when "a" is set to "Aclass()", an instance of Aclass is created and given the name "a". "a.result" is therefore an instance variable. I never use the class variable "Aclass.result". Does that help any? Regards, Barry [EMAIL PROTECTED] 541-302-1107 ________________________ We who cut mere stones must always be envisioning cathedrals. -Quarry worker's creed _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor