[Python-Dev] One-line abstractmethod function?
Guido van Rossum
guido at python.org
Thu Dec 5 19:24:11 CET 2013
How would you get the docstrings in? It seems cramming that much on a
single line doesn't help readability (even though I agree there is a
fair amount of boilerplace).
On Thu, Dec 5, 2013 at 10:20 AM, Allen Li <cyberdupo56 at gmail.com> wrote:
> Hello Python devs,
>
> As a regular Python user, I find the abc module useful for making
> Python's duck typing more explicit. In particular, I ofen use it
> like a Java interface or C header, to provide methods to implement for a
> given "duck type".
>
> 90% of the time, it ends up looking something like this:
>
> class Foo(metaclass=abc.ABCMeta):
>
> @abc.abstractmethod
> def f1(self):
> raise NotImplementedError
>
> @staticmethod
> @abc.abstractmethod
> def f2(arg1):
> raise NotImplementedError
>
> ...
>
> What if there was a function, say make_abstract_method (better name
> pending), so that the above could be written like:
>
> class Foo(metaclass=abc.ABCMeta):
>
> f1 = abc.make_abstract_method('f1', ['self'])
> f2 = staticmethod(abc.make_abstract_method('f2', ['arg1']))
> ...
>
> I think that it would make ABC definitions a lot more compact for many
> use cases, but I welcome any criticisms against this idea.
>
> Allen Li
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: https://mail.python.org/mailman/options/python-dev/guido%40python.org
--
--Guido van Rossum (python.org/~guido)
More information about the Python-Dev
mailing list