擅长:python、mysql、java
<p>如果执行<code>MyClass(1)</code>,那么<code>1</code>确实作为参数传递给<code>__init__</code>。但是<code>__new__</code>在<code>__init__</code>之前被调用,因此<code>1</code>首先被<em>作为参数传递给<code>__new__</code>。您看到的错误是因为您没有重写<code>__new__</code>,所以正在调用继承的{<cd9>},它不接受您的额外参数。它甚至没有机会尝试调用<code>__init__</code>,因为它在尝试调用<code>__new__</code>时失败。在</p>
<p>这在<a href="https://docs.python.org/2/reference/datamodel.html#basic-customization" rel="nofollow">the documentation</a>中有解释。正如这里明确指出的那样,在注入一个类时传递的参数(例如,<code>MyClass(1)</code>中的<code>1</code>)将按顺序传递给<em>两个</em><code>__new__</code><em>和</em><code>__init__</code>。在</p>