[Python-Dev] PEP 318: Properties (original) (raw)

Skip Montanaro skip at pobox.com
Sat Apr 3 16:24:57 EST 2004


Phillip> Technically, what you show is not the actual expansion of the
Phillip> new syntax.  The new syntax applies decorators before binding
Phillip> 'x' to the new function.  So, the old value of 'x' is available
Phillip> to a decorator via sys._getframe().f_locals.  This technique is
Phillip> also useful for implementing generic functions and/or
Phillip> multimethods, signature-based overloading, etc.

How would this be interpreted?

x = 42

def x(self) [propget]: "Doc string for x" return self.__x

def x(self, newx) [propset]: self.__x = newx

def x(self) [propdel]: del 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?

Skip



More information about the Python-Dev mailing list