Module (44%)
Section (20%)

Подробно о методах: продолжение

Если Вы назовете такой метод: __init__, он не будет обычным методом - это будет конструктор.

Если у класса есть конструктор, он вызывается автоматически и неявно, когда создается экземпляр объекта класса.

 

Конструктор:

  • обязан иметь параметр self (он устанавливается автоматически, как обычно);
  • может (но не обязательно) иметь больше параметров, чем просто self; в этом случае способ использования имени класса для создания объекта должен отражать определение __init__;
  • можно использовать для настройки объекта, то есть для правильной инициализации его внутреннего состояния, создания переменных экземпляра, создания экземпляров любых других объектов, если они необходимы, и т.д.
 

Посмотрите на код в редакторе. В примере показан очень простой конструктор в работе.

 

Запустите его. Вывод кода:

object

output

Обратите внимание, что конструктор:

  • не может вернуть значение, так как он предназначен для возвращения вновь созданного объекта и ничего больше;
  • нельзя вызывать напрямую ни из объекта, ни из класса (Вы можете вызвать конструктор из любого из суперклассов объекта, но мы обсудим эту проблему позже).


Code

class Classy:
def __init__(self, value):
self.var = value


obj1 = Classy("object")

print(obj1.var)
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×