私はPythonイテレータで少し失われています。時にはそれらを使うこともありますが、自分で作成することは覚えていません。私は__iter__()
メソッドがイテレータを返すことになって推測し、そのイテレータが次のメソッドの権利を持っている必要があり繰り返しクラスのnext()メソッドと__next __()は何の違いがありますか?
class Foo(object):
def __init__(self):
self.something = "initial_value"
def __iter__(self):
return self
def next(self):
# I don't quite remember what was here :S
return self.something
:私は、このようなコードを覚えていないどこから読みますか?それでは__next__()
の方法は? __iter__()
メソッドを使って別のイテレータを返さずに、クラスを直接反復するのですか?
** foo **はイテレータです。この場合、単にそれ自身を返します。オブジェクトは反復をサポートできますが、イテレータはサポートできません。 – Wes
ありがとう、コードを修正しました。 – yasar