Ну представь, у меня есть объект, который содержит в себе всю информацию, допустим pid процесса моего приложения. У моего объекта есть метод рестарта. Логично, что после рестарта pid изменится. В моем случае он автоматически обновит объект, прописав новый пид и следующий тест если придет, будет этот пид знать. Теперь рассмотрим то же самое но без классов, на обычных методах. Тебе надо запустить приложение, куда то записать пид, поработать с ним. Потом чтобы порестарить тебе снова надо куда то сходить, взять пид, потом тебе его надо обновить. Потом пришел следующий тест и тоже должен куда то сходить, что то найти. В итоге там где у меня будет просто self.pid у тебя будет pid = get_pid()... И так в каждом случае, когда тебе надо что то хранить. Или пример номер два. Чтобы обойтись функциональным программированием тебе в каждую функцию надо передавать контекст. На примере выше, чтобы рестартануть приложение, тебе надо в метод рестарта передать пид процесса. Если у тебя будет класс с приложением, у этого класса будет метод рестарта, а в атрибутах класса будет пид, то в метод рестарта передавать его уже не надо. Он его возьмет сам из объекта. Короче, если у тебя простенькие клики в браузере, то да, обоходишься функциями и не паришься. У меня за раз стартует 100+ разных процессов, которыми я должен управлять в каждом потоке. Должна шарится память итд. Потому у меня по другому никак.
Обсуждают сегодня