class property methods getting called only once

limodou limodou at gmail.com
Mon Dec 4 00:31:50 EST 2006


>On 3 Dec 2006 21:24:03 -0800, jm.suresh at no.spam.gmail.com
<jm.suresh at gmail.com> wrote:
> In the following code, I could not find out why the set and get methods
> are not called once I set the property.
>
>
> >>> class Test:
> ...     def __init__(self):
> ...         self._color = 12
> ...     def _setcolor(self,value):
> ...         print 'setting'
> ...         self._color = value
> ...     def _getcolor(self):
> ...         print 'getting'
> ...         return self._color
> ...     color = property(_getcolor,_setcolor)
> ...
> >>> a = Test()
> >>> a.color
> getting
> 12
> >>> a.color = 22
> >>> a.color
> 22
>
> For some reason the set method is not getting called at all, Anybody
> has any clue?
>
> thanks.

property can only be used in New Style Class. So you should write your Test as:

class Test(object):

And try again.

-- 
I like python!
UliPad <<The Python Editor>>: http://wiki.woodpecker.org.cn/moin/UliPad
My Blog: http://www.donews.net/limodou



More information about the Python-list mailing list