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@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