擅长:python、mysql、java
<p>当你这么做的时候</p>
<pre><code>for i in ckClassData:
</code></pre>
<p>每个<code>i</code>都是一个<code>CompKeyData</code>实例。然后你要:</p>
<pre><code>printTest(i)
</code></pre>
<p>它叫:</p>
<pre><code>for f in classData:
</code></pre>
<p>其中<code>classData</code>是您传入的<code>i</code>。你知道吗</p>
<p>这将遍历单个<code>CompKeyData</code>实例,该实例(由于<code>__iter__</code>的实现)依次将<code>FirstName</code>、<code>MiddleName</code>和<code>LastName</code>分配给<code>f</code>——每个实例都是一个字符串,并且没有<code>FirstName</code>。你知道吗</p>
<p>相反,<code>printTest</code>应该是:</p>
<pre><code>printTest(classData):
print classData.FirstName
</code></pre>
<p>您不需要显式地<code>return None</code>,如果您不显式地<code>return</code>任何其他内容,则会自动发生这种情况。你知道吗</p>
<p>另外,值得一读<a href="http://legacy.python.org/dev/peps/pep-0008/" rel="nofollow">PEP-0008</a>;遵循这一点将使您的代码更具可读性。你知道吗</p>