[Python-ideas] @Override decorator

Terry Reedy tjreedy at udel.edu
Mon Jul 18 18:36:23 EDT 2016


On 7/18/2016 12:44 PM, Shrey Desai wrote:
> Python Ideas,
>
> While working on some object-oriented projects in Java, I noticed that
> Python does not have an *@override* decorator for methods that are
> derived from a parent class but overridden for the unique purposes of a
> base class. With the creation of the *@abstractmethod* decorator, the
> override decorator could follow in clearly distinguishing the logic and
> design between parent/base classes.

If you mean 'override' to have some actual function, then it is not 
clear to me. If the 'decorator' is strictly a comment, why not use a 
comment?

> Why I would think an override decorator might be useful:
>
>  1. For other people reading the code, it would be great to distinguish
>     between methods that are unique to a class and methods that are
>     inherited from a parent class. Not all methods inherited might be
>     overridden, so keeping track of which inherited methods are
>     overridden and which are not would be nice.
>  2. With the advent of static typing from mypy:
>      1. Having the decorator could corroborate the fact that the given
>         method overrides the parent method correctly (correct name +
>         parameter list).
>      2. When the parent class changes, such as the name or parameter
>         list of an abstract method, the children classes should be
>         updated as well. mypy could easily target the methods that need
>         to be altered with the correct method signature.
>      3. If you don’t have an override decorator and overrode a parent
>         method, then there could be some error complaining about this.
>         This would be extremely useful to prevent accidental errors.
>
>
> There is some interest for this as expressed on Stack Overflow
> (http://stackoverflow.com/questions/1167617/in-python-how-do-i-indicate-im-overriding-a-method)
> and some people have also made packages for this, but having it in the
> standard distribution would be nice. Thoughts?
>
> Sincerely,
> Shrey Desai
> https://github.com/shreydesai
>
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>


-- 
Terry Jan Reedy




More information about the Python-ideas mailing list