title: Initializer vs Constructor
body: <p>I have heard that the <code>__init__</code> function in python is not a Constructor, It's an Initializer and actually the <code>__new__</code> function is the Constructor and the difference is that the <code>__init__</code> function is called after the creation of the object and the <code>__new__</code> called before. Am I right? Can you explain the difference better and why do we need both <code>__new__</code> and <code>__init__</code>?</p>