Kay Schluehr wrote:
Hmmm ... now You eliminate "where" completely in favor for '::'. This
may be reasonable because '::' is stronger and less context dependent.
But on the other hand it may be also reasonable to eliminate '::'
towards a stronger "where" ;)

x = property(**kw) where kw:
            doc = "I'm the 'x' property."
            def fget(self):
                return self.__x


x = property(*args) where args: def fget(self): return self.__x fset = None fdel = None doc = "I'm the 'x' property."
[snip]
I think this version is more mainstream syntax ( and without braces and
additional punctuation ) than the unary prefix operator '::' which
drops statements into expressions within expressions.

So the object of a "where" is then always an ordered dict? If so, then I guess I like this proposal best so far.


However, it does seem to have the problem that you can't have any additional local variables so, for example, list comprehensions are probably not usable...

Or can you still drop the argument to "where" and just use the names directly? E.g.:

x = property(fget=fget, doc=doc) where:
    doc = "I'm the 'x' property."
    def fget(self):
        return self.__x

STeVe
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to