PEP 318
Michele Simionato
michele.simionato at poste.it
Tue Mar 23 02:52:11 EST 2004
Skip Montanaro <skip at pobox.com> wrote in message news:<mailman.247.1079985383.742.python-list at python.org>...
> I will reiterate my comment from before: PEP 318 is about more than just
> static and class methods. Here are a few examples from the python-dev
> discussion.
>
> 1. From Fred Drake:
>
> As an (admittedly trivial) example, I'd be quite happy for:
>
> class Color [valuemap]:
> red = rgb(255, 0, 0)
> blue = rgb(0, 255, 0)
> green = rgb(0, 0, 255)
>
> to cause the name Color to be bound to a non-callable object. Why must
> the decorators be required to return callables? It will not make sense
> in all circumstances when a decorator is being used.
Ok.
> 2. From Anders Munch:
>
> Given that the decorator expression can be an arbitrary Python
> expression, it _will_ be used as such. For example:
>
> def foo(arg1, arg2) as release(
> version="1.0",
> author="me",
> status="Well I wrote it so it works, m'kay?",
> warning="You might want to use the Foo class instead"):
Nice,
> 3. From Shane Hathaway:
>
> Ooh, what about this:
>
> def singleton(klass):
> return klass()
>
> class MyThing [singleton]:
> ...
>
> That would be splendid IMHO.
This one I don't like (not the syntax, the implementation).
I want my singleton to be a class I can derive from.
This can be done by using a metaclass as decorator
(I posted an example months ago).
> There are plenty of other examples. Browse the archives.
>
> think-outside-the-bun-(tm)-ly, y'rs,
>
> Skip
And don't forget Ville Vanio's idea of using the new syntax to
implement multimethods:
def __mul__(self,other) as multimethod(Matrix,Matrix):
...
def __mul__(self,other) as multimethod(Matrix,Vector):
...
def __mul__(self,other) as multimethod(Matrix,Scalar):
...
def __mul__(self,other) as multimethod(Vector,Vector):
...
def __mul__(self,other) as multimethod(Vector,Scalar):
...
etc.
Way cool, actually :)
Michele Simionato
More information about the Python-list
mailing list