Что возвращает метод __init__ в python

class Num:
   def __init__(self,num):
      self.n = num

Я прочитал, что метод __init__ возвращает None. Когда я выполняю a=Num(5), Num(5) вызывает метод __init__ класса. Но если __init__ возвращает None, то a должен ссылка ничего. Но вместо этого a ссылается на объект Num Class.Как это происходит? Так что __init__ return None или объект класса?

Ответы

Ответ 1

__init__() возвращает None. Это __new__(), который возвращает новый экземпляр.

Ответ 2

При выполнении a = Num (5) вы создаете объект, а вновь созданный объект возвращается. Но это не так просто, как вы могли бы напрямую вызвать __init__ при создании объекта. __init__ называется частью процесса инициирования некоторой магией Python в фоновом режиме. И в основном __new__ является частью этой магии. Однако есть только редкие случаи, когда вы хотите играть с __new__. Вы должны делать это только в том случае, если вы действительно знаете, что делаете, и если нет действительно простых способов достичь своей цели.