Вы не можете вернуть 'self', потому что ни один из известных мне языков ООП не позволяет возвращать тип как тип (не знаю, как это перефразировать).Однако каждый позволяет вернуть экземпляр типа.Статический метод является частью определения класса и может вызываться до тех пор, пока приложение выполняется.
При выполнении ООП вы должны очень осторожно использовать ключевое слово static, так как злоупотреблять им очень легко.Если вы хотите объединить методы, используйте объект.Статические методы должны использоваться только , когда состояние не требуется, и функция просто обрабатывает ввод и возвращает результат.
При объединении в цепочку вы должны поддерживать состояние, а именно там вы не используетестатические классы / методы вообще (хорошо, есть некоторые случаи, но это исключения, и здесь это не так).