[Python-3000] pep 3124 plans (original) (raw)
Jim Jewett jimjjewett at gmail.com
Mon Jul 30 21:00:46 CEST 2007
- Previous message: [Python-3000] pep 3124 plans
- Next message: [Python-3000] pep 3124 plans
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 7/30/07, Jeffrey Yasskin <jyasskin at gmail.com> wrote:
On 7/29/07, Talin <talin at acm.org> wrote: > Phillip J. Eby wrote: > > At 08:25 AM 7/27/2007 -0700, Guido van Rossum wrote: > >> ... But GFs in classes and subclassing? Not until we > >> have a much better design.
> > The only time I actually use them in > > classes myself is to override existing generic functions > > that live outside the class
Why are you overriding, instead of just specializing?
Why not define the @overload operator so that it just registers the specialization with the base class?
> class A: > @overload > def method1(self, x:object): > ...
Should this register with a "global" generic method, so that
method1(first_arg:A, x:object)
forwards to
A.method1(first_arg, x)
> class B(A): > @overload > def method(self, x:int): > ...
and this would register with A.method1 (or the global method1, depending on the previous answer) for the pattern
method1(first_arg:B, x:int)
> b = B() > b.method("test") // Method not found
Instead, this would skip back to A.method1(self, "test") -- and I think the @overload decorator is sufficient warning. (I do wonder whether that is magical enough to call it @overload)
-jJ
- Previous message: [Python-3000] pep 3124 plans
- Next message: [Python-3000] pep 3124 plans
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]