[Python-ideas] A decorator to call super()

Roberto Martínez robertomartinezp at gmail.com
Tue Jan 31 09:20:02 EST 2017


I think both are useful. I would make this configurable with a flag:

class MyOverridedClass(MyBaseClass):
    @extendsuper(after=True)
    def mymethod(self, foo):
        ...

Or maybe a pair of decorator is a better option: @pre_super and @post_super

El mar., 31 ene. 2017 a las 13:07, Sven R. Kunze (<srkunze at mail.de>)
escribió:

> Hi Roberto,
>
>
> On 31.01.2017 08:13, Roberto Martínez wrote:
>
> class MyOverridedClass(MyBaseClass):
>     def mymethod(self, foo, **kwargs):
>         # Do something
>         return super().mymethod(**kwargs)
>
> What about creating a decorator to call super() after/before the overrided
> method? Something like that:
>
> class MyOverridedClass(MyBaseClass):
>     @extendsuper
>     def mymethod(self, foo):
>         # Do something
>
>
> I could find this useful. There's just on bikeshedding issue:
>
> When should "super().mymethod(**kwargs)" be called: *before*, *after* or
> inbetween my specialized code?
>
> Depending on the baseclass either of those three is necessary. As far as I
> can tell, we encounter all of them regularly.
>
> Best,
> Sven
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170131/2142003f/attachment-0001.html>


More information about the Python-ideas mailing list