擅长:python、mysql、java
<p>添加到@Jeremy的答案:一个流行的检查值是一个通用序列的方法是使用<code>isinstance(value, collections.Sequence)</code>。在</p>
<p>为了使您的类型实现这一点,它需要从<a href="https://docs.python.org/2/library/collections.html#collections-abstract-base-classes" rel="nofollow noreferrer">^{<cd2>}</a>继承,这实际上为混合函数提供了迭代器(和一些其他有用的函数),只要您提供<code>__len__</code>和<code>__index__</code>函数。在</p>
<p>借用@Jeremy的答案,一个示例类如下所示:</p>
<pre><code>import collections
class MySequence(collections.Sequence):
def __len__(self):
return 3
def __getitem__(self, key):
if key == 0:
return 1
elif key == 1:
return 2
elif key == 2:
return 3
else:
raise IndexError()
</code></pre>
<p>用法示例:</p>
^{pr2}$