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