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 (<[email protected]>)
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
>
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/