<p><code>__init__</code>排在第一位。<code>__new__</code>主要添加到。。。好吧,我让<a href="http://docs.python.org/2/reference/datamodel.html#object.__new__" rel="nofollow">documentation</a>解释一下:</p>
<blockquote>
<p><code>__new__()</code> is intended mainly to allow subclasses of immutable types (like int, str, or tuple) to customize instance creation. It is also commonly overridden in custom metaclasses in order to customize class creation.</p>
</blockquote>
<p><code>__init__</code>对于旧样式的类系统来说已经足够好了。即使您子类化了一个“不可变”的旧样式类,也只需为超类的<code>__init__</code>提供适当的参数。这不能用子类,比如,<code>tuple</code>来剪切它。在</p>
<p>至于<code>__init__</code>没有被调用:</p>
<blockquote>
<p>If <code>__new__()</code> returns an instance of <em>cls</em>, then the new instance’s
<code>__init__()</code> method will be invoked like <code>__init__(self[, ...])</code>, where <em>self</em> is the new instance and the remaining arguments are the same as
were passed to <code>__new__()</code>.</p>
<p>If <code>__new__()</code> does not return an instance of <em>cls</em>, then the new
instance’s <code>__init__()</code> method will not be invoked.</p>
</blockquote>