[Python-3000] Generic function PEP won't make it in time

Guido van Rossum guido at python.org
Mon Apr 23 20:43:12 CEST 2007

On 4/23/07, Phillip J. Eby <pje at telecommunity.com> wrote:
>    from overloading import overload, abstract
>    def foo(bar, baz):
>        """Default implementation here"""
>    @overload
>    def foo(bar:int, baz:str):
>        """Overloaded implementation for int/str here"""
>    @abstract
>    def spam(fizz):
>        """This function has no default implementation, and raises
>           a "no applicable methods" error if called..."""

(a) What's the point of having a separate keyword for this, as opposed
to just raising an exception from the body?

(b) I'm proposing an @abstractmethod, which sets its argument's
__isabstractmethod__ attribute and then returns it, otherwise
unchanged. Would this be good enough for you, or do you need @abstract
to do more? My point is, I could rename mine to @abstract so that it
would serve your purpose as well -- but only if it would serve.

>    @overload
>    def spam(fizz:list):
>        """...unless an appropriate overload is added first"""
> Any questions?  :)

I'd like the examples even better if they used ABCs from PEP 3119. :-)

--Guido van Rossum (home page: http://www.python.org/~guido/)

More information about the Python-3000 mailing list