擅长:python、mysql、java
<p><code>makeSecondNoise</code>导致错误的原因是它自动传递了一个参数<code>self</code>,因为它没有声明为<code>staticmethod</code><code>self</code>是调用函数的类的实例。这最终导致了错误,因为<code>makeSecondNoise</code>没有编码为接受任何参数;就像这样:</p>
<pre><code>def something():
...
something("Foo")
</code></pre>
<p>以下是<code>self</code>工作原理的示例:</p>
<pre><code>>>> class Car:
... def makenoise(self):
... print(self)
...
>>> mustang = Car()
>>> mustang.makenoise()
<__main__.Car object at 0x0000000005498B38> # We can see that "self" is a reference to "mustang"
</code></pre>
<p>你的问题与<code>print</code>无关(没有<code>print</code>我也无法得到你的例子)-它与<code>self</code>参数的自动传递有关</p>