Метод-конструктор (__init__)
Часть раздела Объектно-ориентированное программирование путешествия по Python на Coddy. Урок 7 из 64.
Метод __init__ — это специальный метод, который автоматически запускается, когда вы создаёте новый object. Он инициализирует attributes object.
Вот пример класса с конструктором:
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 class в одном файле, который будет импортирован и использован в другом.
Ваша задача:
- Завершить
Bookclass вbook.pyс помощью метода__init__, который инициализирует атрибутыtitle,authorиpages - Файл
driver.pyимпортирует и использует вашBookclass для создания объекта книги с названием"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
Введение в паттерны проектированияПаттерн SingletonПаттерн FactoryПаттерн ObserverПаттерн Strategy5Полиморфизм
Снова о переопределении методовУтиная типизацияАбстрактные классы и методыПроектирование интерфейсовИтоги — Калькулятор фигур8Продвинутые концепции ООП
Композиция против наследованияМиксиныСтатические методы и методы классаДекораторы классовМенеджеры контекста11Паттерны проектирования. Часть 2
Паттерн КомандаПаттерн АдаптерПаттерн ДекораторПаттерн Шаблонный методПаттерн СостояниеПаттерн Компоновщик3Свойства классов
Переменные экземпляра и классаДекораторы свойствПриватные атрибутыИтоги — Менеджер банковского счета6Инкапсуляция
Public, Protected, Private члены классаМодификаторы доступаСокрытие данныхДекораторы property: продвинутый уровеньИтоги: Система учета студентов12Проект: Управление библиотекой
Обзор проектаКлассы Book и UserСистема выдачи книгФункционал поискаИнтерфейс администратораТестирование и интеграцияПотренируйтесь самостоятельно: Онлайн-компилятор Python