Зачем вообще новичку ООП, если всё решается функциями?
Пишу скрипты на функциях, всё работает. Друзья говорят "учи ООП". Не понимаю, какую реальную проблему оно решает. Это обсуждение, интересно мнение бывалых.
4 ответа
ООП решает проблему "данные и функции, которые с ними работают, разбросаны по коду". Класс склеивает их вместе.
Пока у тебя маленький скрипт — функций достаточно, и это нормально. Боль начинается, когда у тебя, скажем, 5 функций, и все принимают одни и те же 8 параметров (баланс, владелец, история операций...). Ты таскаешь этот ворох туда-сюда. Класс BankAccount прячет эти данные внутрь, и методы работают со своим состоянием:
acc = BankAccount("Аня", 1000)
acc.deposit(500)
acc.withdraw(200)
print(acc.balance)
Плюс наследование позволяет переиспользовать поведение, а полиморфизм — писать код, который работает с разными типами одинаково. Так что не отбрасывай функции, но как только видишь, что одни и те же данные постоянно ходят вместе — это сигнал, что просится класс.
Честно? Для коротких скриптов ООП часто не нужно, и это ок. Оно начинает окупаться на больших проектах и в командной работе, где важна структура. Не учи его ради галочки — учи на реальной задаче, где данные и поведение хочется объединить.
Чтобы читать чужой код. Почти все библиотеки и фреймворки на классах, без понимания ООП ты в них утонешь.
Не нужно оно, функций хватает всем.