Объектно-ориентированное программирование (ООП) — подход к разработке программного обеспечения, основанный на концепциях объектов и классов. В Python, как и в других языках программирования, ООП позволяет создавать более структурированный, масштабируемый и удобный для совместной разработки код. Хотя можно обойтись без ООП, особенно в небольших программах, его использование значительно упрощает работу над крупными проектами, над которыми работает несколько человек. ООП улучшает читаемость кода и способствует оптимизации.
Что такое ООП?
В основе ООП лежат классы и объекты. Класс — шаблон, определяющий структуру и поведение объектов. Объект — конкретный экземпляр класса, обладающий свойствами (переменными) и методами (функциями), определёнными в классе.
Например, класс Человек может иметь поля имя и возраст. Создав два объекта этого класса — Иван и Влад, каждый из них будет иметь доступ к полям имя и возраст, но значения этих полей будут различными. Иван может иметь имя «Иван» и возраст 15, а Влад — «Влад» и возраст 40.
Создание классов и объектов
Для создания класса используется ключевое слово class, за которым следует имя класса. Например:
class Person:
name = "Иван"
age = 10
Это создаёт класс Person с полями name (имя) и age (возраст), заданными по умолчанию.
Создадим объект класса Person:
vlad = Person()
Теперь vlad — объект класса Person. Можно изменить его свойства:
vlad.name = "Влад"
Вывод на экран:
print(vlad.name) # Выведет "Влад"
Создадим ещё один объект:
ivan = Person()
print(ivan.name) # Выведет "Иван" (значение по умолчанию)
Каждый объект имеет собственные характеристики. Изменение свойства одного объекта не влияет на другие объекты того же класса.
Методы класса
В классах функции называются методами. Каждый метод должен принимать первый аргумент self, представляющий экземпляр класса.
Создадим метод set_info:
class Person:
name = "Иван"
age = 10
def set_info(self, name, age):
self.name = name
self.age = age
Теперь можно использовать этот метод для установки значений полей объекта:
vlad = Person()
vlad.set_info("Влад", 25)
print(f"{vlad.name} - {vlad.age}") # Выведет "Влад - 25"
ivan = Person()
ivan.set_info("Иван", 56)
print(f"{ivan.name} - {ivan.age}") # Выведет "Иван - 56"
В этом уроке мы познакомились с основными понятиями ООП в Python: классами и объектами, а также созданием и использованием методов. В следующих уроках мы рассмотрим более продвинутые аспекты ООП.