私はクラスfib
を持っています。それは__iter__
と__next__
を実装します。それは反復可能であり、それ自身の反復子でもあります。クラスが反復可能かどうかの確認
class fib(object):
def __init__(self):
self.prev = 0
self.curr = 1
def __iter__(self):
return self
def __next__(self):
value = self.curr
self.curr += self.prev
self.prev = value
return value
from collections import Iterable
print(isinstance(fib, Iterable))
print文はFalse
を返し、私はそれは、オブジェクトが反復可能であるかどうかの確認True
'fib'はインスタンスではなく*クラス*です。したがって、サブクラスチェック 'issubclass(fib、Iterable)'を使用します。または、インスタンスを最初に作成する: 'isinstance(fib()、Iterable)' - 小文字でクラス名を始めるために得られるもの); – poke
'fib'は反復不可能です。 'fib'はインスタンスが反復可能なクラスです。 「ファイブ」自体を反復しようとすると、ハンバーガーのコンセプトを食べようとするようなものになります。 – user2357112