Урок 66 — Справочник: Основы ООП
⚡ Кратко
Шпаргалка по синтаксису классов, __init__, self и работе с объектами.
🔖 Создание класса
class ClassName:
pass
Ключевое слово class + имя в CamelCase. Тело пока пустое — используем pass.
🔖 Метод __init__
class Book:
def __init__(self, title: str, author: str) -> None:
self.title = title
self.author = author
- Первый параметр —
self. - Остальные параметры — данные для инициализации.
- Через
self.<имя>создаются поля объекта.
🔖 Создание объекта
class Book:
def __init__(self, title: str, author: str) -> None:
self.title = title
self.author = author
book = Book("1984", "George Orwell")
print(book.title, book.author)
Вызываем класс как функцию. Аргументы передаются в __init__ (кроме self).
🔖 Доступ и изменение полей
class Book:
def __init__(self, title: str, author: str) -> None:
self.title = title
self.author = author
book = Book("1984", "George Orwell")
print(book.title) # чтение
book.title = "Animal Farm" # изменение
print(book.title)
🔖 Определение метода
class Book:
def __init__(self, title: str, author: str) -> None:
self.title = title
self.author = author
def get_description(self) -> str:
return f"{self.title} — {self.author}"
def show_info(self) -> None:
print(self.get_description())
🔖 Вызов метода
class Book:
def __init__(self, title: str, author: str) -> None:
self.title = title
self.author = author
def show_info(self) -> None:
print(f"{self.title} — {self.author}")
book = Book("1984", "George Orwell")
book.show_info()
Python неявно передаёт объект слева от точки в параметр self.
🔖 Термины
| Термин | Значение |
|---|---|
| Класс | Шаблон, по которому создаются объекты |
| Объект | Конкретный экземпляр класса |
| Поле | Переменная, хранящая состояние объекта |
| Метод | Функция внутри класса |
| Атрибут | Всё, что доступно через точку у объекта |
| self | Ссылка на текущий объект |
| __init__ | Инициализатор состояния объекта |
| __new__ | Конструктор, создающий объект (редко переопределяется) |
Проверить по документации: аннотации типов и стрелочные подсказки возвращаемых значений выходят за рамки исходного материала урока. Они необязательны, но помогают IDE и статическим анализаторам.