http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/205183 idiom
Gabriel Rossetti
gabriel.rossetti at mydeskfriend.com
Tue Mar 18 04:06:27 EDT 2008
Hello,
I am reading core python python programming and it talks about using the
idiom
described on
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/205183 .
I'm using python 2.5.1 and if I try :
class MyClass(object):
def __init__(self):
self._foo = "foo"
self._bar = "bar"
@property
def foo():
doc = "property foo's doc string"
def fget(self):
return self._foo
def fset(self, value):
self._foo = value
def fdel(self):
del self._foo
return locals() # credit: David Niergarth
@property
def bar():
doc = "bar is readonly"
def fget(self):
return self._bar
return locals()
like suggested in the book (the decorator usage) I get this :
>>> a=MyClass()
>>> a.foo
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: foo() takes no arguments (1 given)
but if I write it just like on the web page (without the decorator, using "x = property(**x())" instead) it works :
>>> a = MyClass()
>>> a.foo
'foo'
does anyone have an idea as of why this is happening?
Thanks,
Gabriel
More information about the Python-list
mailing list