Путь в Python: ООП

Когда в институте только начиналось программирование, нас учили простым концепциям на языке C++. Задачей было не научить языку в полной мере, а просто показать основные приколы: переменные там, функции, классы. Было ничего непонятно, но очень интересно. Там я впервые и услышал про объектно-ориентированное программирование, что без него сейчас никуда, и на каждом собесе спрашивают за наследование, инкапсуляцию и полиморфизм. Так я поставил себе задачу разобраться в этих вещах.

В разных сообществах то тут, то там выскакивали рекомендации к ознакомлению книге “Объектно-ориентированный подход​” Мэтта Вайслельда. И, пожалуй, да, в этой книге достаточно базы и даже больше по проектированию классов. Можно смело рекомендовать каждому, кто захочет разобраться в этом вопросе. Однако есть нюанс. Углубленно я изучал Python, а в книге весь код написан преимущественно на Java, пониманию общих идей это никак не мешало, и все же я видел классы в Пайтон, и, как сказал Иван Золо, “я же вижу, что тут по-другому”

Что именно по-другому помогла разобраться другая книга. “Объектно-ориентированное программирование с помощью Python” Ирва Кальба. Мне казалась эта книга чуть попроще, то ли я просто видел привычный язык и материал мне давался легче, то ли задачей стояло объяснить проще. Хотя общие понятия сохранены и подробно разжевано в обеих книгах. Главное, что тут я увидел, зачем нужен в классе init, как, не имея явного объявления privat, указать, что аргумент или метод является только для внутреннего использования (никак, лол, чисто на доверии), как выглядят и используются декораторы. Книга реально полезная, единственное, что примеры приводятся на библиотеке pygame, которая требует некоторого погружения в себя, а по факту нигде не используется, хотя тему объектов раскрывает в полной мере, тут уж на вкус и цвет.

В общем, советую обе книги. Можно обойтись и одной, в зависимости от используемого языка, но вместе они неплохо друг друга дополняют. Такие дела.

Путь в Python: ООП | Сетка — социальная сеть от hh.ru Путь в Python: ООП | Сетка — социальная сеть от hh.ru