FishHook
Ну и что ты предлагаешь то?
Начать с определений. Он не знает, что такое ООП.
FishHook
Давай закроем нафиг “Питон для новичков”.
Оно для новичков, но не для дурачков.
FishHook
ему не нужны ни иерархии классов, ни анализ и ни проектирование
Без иерархии классов нет ООП. Ты вообще понимаешь, что когда ты просто класс сделал (да даже сто классов ты сделал), это не ООП, это программирование с абстрактными типами данных просто? В ООП
все объекты в программе - родственники. Ближайшие родственники или дальние. И за счёт этой родственности происходит перенос общих признаков, которые не нужно каждый раз заново реализовывать. То есть ты громадные конструкции можешь очень быстро воспроизводить. Вот почему ООП считается подходящей парадигмой для разработки огромных программ (больше 100000 строк). Там просто можно ворочать огромными кусками очень быстро, перенастраивать их с одного на другое.
Так что это не кружок сделать и не квадратик. Это обширная область, где нужно прочитать кучу разных книжек.
В питоне же за счёт ООП достигнута перебираемость объектов разных типов цикле for, например. Как они так догадались, что можно сделать так, чтобы в цикле for можно было
одинаково перебирать и список, и словарь, и строку, и генератор, и открытый файл, и вообще ещё можно свою какую-то штуку сделать, которой нет в питоне, чтобы её тоже там можно было перебирать? Вот это сделано через ООП. Эти классы - потомки класса итерабл (что-то перебираемое). А цикл for - это объект-клиент, взаимодействущий с перебираемым объектом-сервером через протокол перебираемости. Формально цикл for в питоне объектом не является, но с точки зрения ООП процесс идёт именно вот такой - два объекта общаются через сообщения; цикл общается с тем, что он перебирает. Просто это не формализовано, так как вместе с этим и цикл придётся сделать родственником того, что он перебирает, а для этого нужно пораскинуть мозгами, попроектировать. И это обязательно нужно делать, а не просто так, по желанию левой пятки. А в Паскале попробуй перебери что-нибудь в цикле кроме заданного там изначально формата. Питон обходит Паскаль потому, что он объектно-ориентированно устроен. Он и меняется легко, не заморожен, и взаимодействовать с ним легко, потому что всё абстрактно, выведено в интерфейсы. Элементы твоей программы общаются с элементами питона, образуется кооперация объектов.
tags: oop