Основы Python: Объектно-ориентированное программирование (ООП)
Основы Python: Объектно-ориентированное программирование (ООП)
Lesson 1 of 7 • 10 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
Введение в объектно-ориентированное программирование в Python
Объектно-ориентированное программирование (ООП) — это парадигма программирования, которая позволяет представлять реальные концепции в виде объектов — вещей, обладающих конкретными характеристиками (данными) и поведением (действиями).
Представьте объект как самостоятельный элемент в вашей программе, который объединяет данные и действия в одном месте — как ваш смартфон: у него есть данные (марка, модель, уровень заряда батареи) и он может выполнять действия (снимать фото, звонить, воспроизводить музыку). В коде эти данные хранятся в атрибутах (например, battery_level), а действия реализованы методами (например, take_photo()); вместе они составляют единое целое, которое можно создавать, настраивать и использовать.
Класс — это чертёж (конструкция телефона), а объект — реальный, индивидуальный экземпляр, созданный на основе этого чертежа (ваш конкретный телефон с текущим уровнем заряда и фотографиями). Каждый объект хранит своё собственное состояние, поэтому два объекта одного класса могут содержать разные значения одновременно, и взаимодействуют они посредством вызова методов друг друга, а не прямого доступа к внутренним деталям — эта идея называется инкапсуляцией, она помогает организовать код, сократить количество ошибок и лучше понимать поведение.
Когда вы создаёте объект, Python обычно запускает метод init для установки начального состояния; затем вы управляете объектом, вызывая его методы, которые могут читать или изменять его атрибуты по необходимости. Если вы создавали игру, представьте персонажа Player с параметрами здоровья и позиции, который может вызывать методы move() и jump(); в веб‑приложении — пользователя User с именем и паролем, который может выполнять authenticate() и update_profile().
Это и есть объект: данные + поведение, живущие вместе, созданные из класса и готовые к работе для вас.
В Python всё — объект. Это значит, что код строится вокруг объектов и их взаимодействий, делая ООП важнейшей частью Python и ключевой особенностью таких популярных библиотек и фреймворков, как Django, Flask и даже во многих игровых движках.
В этом уроке мы изучим базовые концепции ООП в Python и научимся создавать собственные объекты.
Классы и объекты
ООП в Python основано на классах и объектах:
- Класс — шаблон или определение типа объекта. Он описывает, какие свойства (называемые атрибутами) и какое поведение (называемое методами) будет иметь этот тип объекта.
- Объект — экземпляр класса, реальная версия шаблона с конкретными данными в атрибутах.
1.1. Создание класса
Чтобы создать класс в Python, используйте ключевое слово class, за которым следует имя класса и двоеточие.
Пример:
class Person:
pass
Здесь мы создали класс Person.
Оператор pass — заглушка, которая говорит Python «ничего не делать здесь» до тех пор, пока не добавим реальный код.
ПОДСКАЗКА: По соглашению имена классов пишутся в PascalCase (каждое слово с заглавной буквы).
Атрибуты и методы
Класс может содержать:
- Атрибуты — переменные, хранящие информацию об объекте.
- Методы — функции, определяющие действия, которые объект может выполнять.
2.1. Добавление атрибутов
Чтобы задать атрибуты при создании объекта, определяем их внутри специального метода __init__ (произносится «дандер инит» — сокращение от double underscore init).
Метод __init__ автоматически вызывается при создании нового объекта класса.
Он используется для инициализации атрибутов объекта начальными значениями.
Пример:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
Что здесь происходит:
- Первый параметр
self— ссылка на конкретный создаваемый объект. - Другие параметры (
name,age) — значения, передаваемые при создании объекта. self.nameиself.age— атрибуты экземпляра, хранящие данные внутри объекта.
ВАЖНО: self всегда должен быть первым параметром методов экземпляра — это позволяет обращаться к атрибутам и методам самого объекта.
2.2. Добавление методов
Методы — это функции, принадлежащие классу. Обычно они выполняют действия, использующие или изменяющие атрибуты объекта.
Пример:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"Hello, my name is {self.name} and I am {self.age} years old.")
Здесь:
- Мы добавили метод
greet. - Он использует собственные атрибуты объекта (
self.nameиself.age), чтобы вывести персональное сообщение.
Создание и использование объектов
Когда класс определён, можно создавать объекты, вызывая класс как функцию — с его именем.
Пример:
person1 = Person("Alice", 30)
person1.greet()
Вывод:
Hello, my name is Alice and I am 30 years old.
Итоги
В этом уроке вы узнали:
- В чём разница между классами и объектами.
- Как использовать
__init__для заданий атрибутов при создании объектов. - Как определить методы, позволяющие объектам выполнять действия.
Это основа ООП в Python. Далее мы расширим знания, изучая наследование — способ создавать новые классы на основе существующих.