Menu
Coddy logo textTech

Метод-конструктор (__init__)

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

challenge icon

Задание

Легко

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

Ваша задача:

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

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

Шпаргалка

Метод __init__ — это конструктор, который автоматически запускается при создании нового объекта для инициализации его атрибутов:

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

Создавайте объекты, вызывая класс с аргументами:

rex = Dog("Rex", "German Shepherd")
print(rex.name)  # Rex
print(rex.breed)  # German Shepherd

Конструкторы могут иметь значения параметров по умолчанию:

class Cat:
    def __init__(self, name, age=1):
        self.name = name
        self.age = age

fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers")  # age defaults to 1

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

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

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

Все уроки раздела Object Oriented Programming