>>>How would this be interpreted? >>> x = 42 >>> def x(self) [propget]: >>> "Doc string for x" >>> return self.__x > >>>That is, there is already an (otherwise invalid) 'x' in the calling scope >>>when propget() is called. Do the property doodads just need to be >>>bulletproofed or should an exception be raised? [GvR said:] >>It's broken. I expect this to raise an exception at some point. >>Beyond that, who cares? [Jim said:] > If so, then this decorator is a bad idea. > > I would expect 42 to be the initial value of the property x. That doesn't make sense. If you want to set a default value, you'd say: __x = 42 A property's getter/setter/deleter can perform arbitrary actions, and in the general case there's no sensible way to define an "initial value" for a property. E.g., consider: class A: def getX(self): return random.choice(['apple', 'orange', 'grape']) x = property(getX) If this still doesn't make sense, go read the docs for properties: <http://www.python.org/2.2.2/descrintro.html#property> [Skip said:] > Then it makes sense to put "x = 42" after the three property definitions > (before the end of the class definition). Would that work? No, that would just overwrite x with the value 42 (throwing away the property object). -Edward
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4