擅长:python、mysql、java
<p>一旦你有了一个<code>Person</code>对象,比如用标签<code>person</code>,你就可以像这样访问它的函数:</p>
<pre><code>>>> person = Person('Pete', 43, 'Male')
>>> person.get_age()
43
</code></pre>
<p>不需要将<code>person</code>传递给成员函数<code>get_age</code>:</p>
^{pr2}$
<p>但是<code>get_age</code>的定义确实有一个参数<code>self</code>:</p>
<pre><code>def get_age(self):
return self._age
</code></pre>
<p>当您在一个对象上调用它时,它被隐式传递给函数。因此<code>person</code>作为<code>self</code>传递。您可以在上面的错误消息中看到我们传递了两个参数,隐式<code>self</code><code>person</code>,和(错误的,不需要的)显式<code>person</code>。在</p>
<p><code>self._age</code>与<code>person._age</code>相同,但被封装,并隐藏在<em>'getter'</em>接口后面。在</p>
<p>因此,要修复代码,请删除:</p>
<pre><code>person = Person
</code></pre>
<p>并更改调用,如<code>person.get_age(person)</code>,<code>to person.get_age()</code>。在</p>