У меня есть иерархия OO с docstrings, которые занимают столько же обслуживания, сколько и сам код. Например.
class Swallow(object):
def airspeed(self):
"""Returns the airspeed (unladen)"""
raise NotImplementedError
class AfricanSwallow(Swallow):
def airspeed(self):
# whatever
Теперь проблема заключается в том, что AfricanSwallow.airspeed
не наследует метод docstring метода суперкласса. Я знаю, что могу сохранить docstring с помощью шаблона метода шаблона, т.е.
class Swallow(object):
def airspeed(self):
"""Returns the airspeed (unladen)"""
return self._ask_arthur()
и реализации _ask_arthur
в каждом подклассе. Тем не менее, мне было интересно, есть ли другой способ унаследовать docstrings, возможно, какой-то декоратор, которого я еще не обнаружил?