特定の変数がジェネレーターオブジェクトであるかどうかを確認する必要があります。???の代わりにリテラルジェネレータタイプを指定するにはどうすればよいですか?下?
def go():
for i in range(999):
yield i
la = go()
print repr(type(la))
<type 'generator'>
assert type(la) == ???
types.GeneratorType
(types
モジュールから)使用します。ただし、なぜこれを行っているのかを考える必要があります。通常は、明示的な型チェックを避けて、オブジェクトを反復処理して、それが機能するかどうかを確認することをお勧めします。
import types
assert isinstance(la, types.GeneratorType)
一般的にはそうではありません。__iter__
との名前を持つ属性を探しますnext
。両方の関数です。