擅长:python、mysql、java
<p>您可以解压缩任何<a href="https://docs.python.org/2/library/collections.html#collections.Iterable" rel="noreferrer">^{<cd1>}</a>。这意味着您需要实现<code>__iter__</code>方法,并返回迭代器。在您的情况下,这可能只是:</p>
<pre><code>def __iter__(self):
return iter((self.name, self.age, self.gender))
</code></pre>
<p>或者,您可以将类设置为<a href="https://docs.python.org/2/library/collections.html#collections.Iterator" rel="noreferrer">^{<cd3>}</a>,然后<code>__iter__</code>将<code>return self</code>,您需要实现<code>__next__</code>;这是更多的工作,可能不值得付出努力</p>
<p>有关更多信息,请参见<a href="https://stackoverflow.com/q/9884132/3001761">What exactly are Python's iterator, iterable, and iteration protocols?</a></p>
<hr/>
<p>根据我上面链接的问题,您还可以使用<code>__getitem__</code>实现一个iterable:</p>
<pre><code>def __getitem__(self, index):
return (self.name, self.age, self.gender)[index]
</code></pre>