Метод-конструктор (__init__)
Часть раздела Объектно-ориентированное программирование путешествия по Python на Coddy. Урок 7 из 64.
Метод __init__ — это специальный метод, который запускается автоматически при создании нового объекта. Он инициализирует атрибуты объекта.
Вот пример класса с конструктором:
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breedМетод __init__ принимает параметры и присваивает их атрибутам экземпляра с помощью self.
Создай объекты с помощью конструктора:
rex = Dog("Rex", "German Shepherd")
buddy = Dog("Buddy", "Golden Retriever")Когда ты вызываешь Dog("Rex", "German Shepherd"), Python автоматически вызывает __init__ и передаёт аргументы.
Обратитесь к атрибутам, заданным конструктором:
print(rex.name)
print(rex.breed)
print(buddy.name)
print(buddy.breed)Вывод:
Rex
German Shepherd
Buddy
Golden RetrieverТакже можно создать конструктор со значениями по умолчанию:
class Cat:
def __init__(self, name, age=1):
self.name = name
self.age = age
# Создаём кошек
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers") # по умолчанию age равно 1
print(f"{fluffy.name} is {fluffy.age} years old")
print(f"{whiskers.name} is {whiskers.age} years old")Вывод:
Fluffy is 3 years old
Whiskers is 1 years oldКлючевой момент: метод __init__ гарантирует, что при создании каждый объект будет правильно настроен с начальными данными. Благодаря этому не нужно вручную задавать атрибуты после создания объекта.
Задание
ЛегкоТебе предоставлены файлы Python (book.py и driver.py) для реализации системы управления книгами. В этом задании ты определишь класс Book в одном файле, который будет импортирован и использован в другом.
Твоя задача:
- Завершить класс
Bookв файлеbook.py, добавив метод__init__, который инициализирует атрибутыtitle,authorиpages - Файл
driver.pyимпортирует и использует твой классBookдля создания объекта книги"Harry Potter" by "J.K. Rowling" with 400 pages
Следуй подробным комментариям TODO в файле book.py .
Попробуйте сами
# TODO: Импортируйте класс Book из book.py
# Используйте этот формат: from book import Book
# TODO: Создайте объект книги с именем 'my_book' со следующими значениями:
# - title: "Harry Potter"
# - author: "J.K. Rowling"
# - pages: 400
# Пример: my_book = Book("Title", "Author", pages)
# Выведите сведения о книге
# TODO: Убедитесь, что my_book правильно определён до выполнения этой строки
print(f"'{my_book.title}' by {my_book.author}, {my_book.pages} pages")В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
1Основы ООП
Введение в ООПВнешние файлыКлассы и объектыПараметр selfМетодыАтрибутыМетод-конструктор (__init__)Повторение — простой калькулятор4Наследование
Основы наследованияФункция super()Переопределение методовМножественное наследованиеПорядок разрешения методовПовторение: иерархия сотрудников7Специальные методы
Введение в магические методыПерегрузка операторовМагические методы контейнеровПовторение — пользовательский список10Паттерны проектирования. Часть 1
Введение в паттерны проектированияПаттерн «Одиночка»Паттерн «Фабрика»Паттерн «Наблюдатель»Паттерн «Стратегия»2Декораторы
Введение в декораторыДекоратор свойстваДекоратор статического методаДекоратор метода класса5Полиморфизм
Переопределение методов: повторениеУтиная типизацияАбстрактные классы и методыПроектирование интерфейсовПовторение — калькулятор фигур8Продвинутые концепции ООП
Композиция и наследованиеМиксиныСтатические методы и методы классаДекораторы классовМенеджеры контекста11Паттерны проектирования. Часть 2
Паттерн «Команда»Паттерн «Адаптер»Паттерн «Декоратор»Паттерн «Шаблонный метод»Паттерн «Состояние»Паттерн «Компоновщик»3Свойства классов
Переменные экземпляра и классаДекораторы свойствПриватные атрибутыПовторение — менеджер банковского счёта6Инкапсуляция
Публичные, защищённые и приватные членыМодификаторы доступаСокрытие информацииПродвинутые декораторы свойствПовторение — система учёта студентов12Проект: Система управления библиотекой
Обзор проектаКлассы книг и пользователейСистема выдачи книгФункция поискаИнтерфейс администратораТестирование и интеграцияПотренируйтесь самостоятельно: Онлайн-компилятор Python