Большинство языков знают идиому «возврата себя» и игнорируют его, если он не используется в строке. Однако следует отметить, что в Python функции возвращаются None
по умолчанию.
Когда я был в школе CS мой инструктор сделал огромное дело о разнице между функциями, процедурами, процедуры и методы; многие вопросы о сочинении рук были заточены механическими карандашами в моих руках от всего этого.
Достаточно сказать, что возвращение self является окончательным ОО-способом для создания методов класса, но Python допускает множественные возвращаемые значения, кортежи, списки, объекты, примитивы или None.
Цепочка, как они выражаются, просто помещает ответ на последнюю операцию в следующую, и среда выполнения Python может оптимизировать подобные вещи. Понимания списка являются встроенной формой этого. (Очень могущественный!)
Так что в Python не так важно, чтобы каждый метод или функция возвращали что-то, поэтому по умолчанию None.
Существует точка зрения, что каждое действие в программе должно сообщать об успехе, неудаче или результате обратно в вызывающий контекст или объект, но тогда здесь не говорилось о требованиях DOD ADA. Если вам нужно получить обратную связь от метода, продолжайте или нет, но постарайтесь быть последовательным в этом.
Если метод может потерпеть неудачу, он должен вернуть успех или неудачу или вызвать исключение для обработки.
Одно предостережение: если вы используете возвращаемую идиому self, Python позволит вам назначить все ваши методы переменным, и вы можете подумать, что получаете результат данных или список, когда фактически получаете объект.
Языки с ограничением типов кричат, кричат и ломаются, когда вы пытаетесь это сделать, но интерпретируемые (Python, Lua, Lisp) гораздо более динамичны.