ООП (или же объективно ориентированное программирование) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов.



Для начала разберемся с формулировками:



Класс — тип, описывающий устройство объектов.



Объект — это экземпляр класса. Класс можно сравнить с чертежом, по которому создаются объекты.



self — обязательный аргумент, содержащий в себе экземпляр класса, передающийся при вызове метода.





В Python всё является объектами - строки, списки, словари и всё остальное.



Но возможности ООП в Python этим не ограничены. Программист может написать свой тип данных (класс) и определить в нём свои методы.



Сверху приведён самый простой пример, где мы задаём класс с собственными методами а затем возвращаем и используем его :3



Стоит отметить, что ООП не является обязательным - мы можем пользоваться только встроенными объектами. Однако ООП полезно при долгосрочной разработке программы несколькими людьми, так как упрощает понимание кода.



Документация и примеры кода здесь.