Метод __init__() в Python — как использовать

В этом уроке вы узнаете, как использовать метод __init__() в Python для инициализации атрибутов объекта.

Что такое метод __init__() в Python?

Когда вы создаете новый объект класса, Python автоматически вызывает метод __init__() для инициализации атрибутов объекта.

В отличие от обычных методов, метод __init__() имеет два подчеркивания(__) с каждой стороны. Поэтому __init__() часто называют dunder init. Название происходит от двойного подчеркивания init. Двойное подчеркивание с обеих сторон метода __init__() указывает на то, что Python будет использовать этот метод внутри себя. Другими словами, вам не следует явно вызывать этот метод.

Поскольку Python автоматически вызывает метод __init__() сразу после создания нового объекта, вы можете использовать метод __init__() для инициализации атрибутов объекта.

Ниже определяется класс Person с помощью метода __init__():

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


if __name__ == '__main__':
    person = Person('John', 25)
    print(f"I'm {person.name}. I'm {person.age} years old.")

Когда вы создаете экземпляр класса Person, Python выполняет две вещи:

  • Сначала создается новый экземпляр класса Person, установив пустое пространство имен объекта, например атрибут __dict__({}).
  • Затем вызывается метод __init__ для инициализации атрибутов вновь созданного объекта.

Обратите внимание, что метод __init__ не создает объект, а только инициализирует его атрибуты. Следовательно, __init__() не является конструктором.

Если __init__ имеет параметры, отличные от self, вам необходимо передать соответствующие аргументы при создании нового объекта, как в примере выше. В противном случае вы получите ошибку.

Метод __init__ с параметрами по умолчанию

Параметры метода __init__() могут иметь значения по умолчанию. Например:

class Person:
    def __init__(self, name, age=22):
        self.name = name
        self.age = age


if __name__ == '__main__':
    person = Person('John')
    print(f"I'm {person.name}. I'm {person.age} years old.")

Выход:

I'm John. I'm 22 years old.

В этом примере параметр age имеет значение по умолчанию 22. Поскольку мы не передаем аргумент в Person(), для возраста используется значение по умолчанию.

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *