[Python-Dev] PEP 318 - generality of list;
restrictions on elements
Guido van Rossum
guido at python.org
Wed Mar 10 11:09:25 EST 2004
> > So decorators couldn't be used to create read-only properties?
>
> Maybe I'm misunderstanding something. I thought that a property
> contains a get descriptor, which makes it a kind of callable.
That's irrelevant; the property itself isn't callable.
> Also, I thought we had explicitly punted on allowing decorators to
> create properties because the syntax wasn't sufficiently flexible
> without contortions.
It would work just fine for read-only descriptors; in fact I believe
that
def foo [property] (self):
return ...calculated value of foo...
would be all you need (it would be nice if property tried to get the
docstring out of the get function).
In any case, *I* would prefer not to let the semantics require
anything, and to make this just a (preferred) shorthand for applying
arbitrary transformations to something that starts out as a function.
Two additional thoughts:
1) I'm not sure I like using the same syntax for classes; the use
cases are so different that using similar syntax only adds
confusion, and I think the use cases for classes are a lot weaker
than for methods.
2) The syntax should also apply to regular functions.
3) It needs to be crystal clear that the list of transformations is
applied at function/method definition time, not at class definition
time (which is later, after all the methods have been collected in
a namespace).
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev
mailing list