Объектно-ориентированное программирование (ООП) описывает данные и связанные с ними действия вместе. Класс — это шаблон (тип объектов), а объект — конкретный экземпляр.
class Dog: def __init__(self, name): self.name = name def bark(self): return f"{self.name}: гав!"
d = Dog("Рекс") print(d.bark()) # Рекс: гав!
Метод __init__ — конструктор, вызывается при создании объекта Dog("Рекс") и задаёт начальные данные. self — это сам объект; через него хранят и читают данные (self.name). Методы — это функции внутри класса, описывающие поведение объекта.
Наследование позволяет создавать новый класс на основе существующего: class Puppy(Dog): получает всё от Dog и может добавить или переопределить методы. ООП помогает моделировать реальные сущности и переиспользовать код.