Menu
Coddy logo textTech

Метод-конструктор (__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__ гарантирует, что каждый объект правильно настроен с исходными данными при создании. Он избавляет вас от необходимости вручную задавать атрибуты после создания объекта.

challenge icon

Задание

Легко

Вам предоставлены файлы Python (book.py и driver.py) для реализации системы управления книгами. В этом задании вы определите Book class в одном файле, который будет импортирован и использован в другом.

Ваша задача:

  • Завершить Book class в book.py с помощью метода __init__, который инициализирует атрибуты title, author и pages
  • Файл driver.py импортирует и использует ваш Book class для создания объекта книги с названием "Harry Potter" by "J.K. Rowling" with 400 pages

Следуйте подробным комментариям TODO в файле book.py.

REQUIRED OUTPUT FORMAT: [Your translated content here]

Попробуйте сами

# 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")
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Объектно-ориентированное программирование

Потренируйтесь самостоятельно: Онлайн-компилятор Python