関数yield
内でgenerator( ) を使用する利点は何ですか? Pythonクックブック__iter__()
を読んだ後、「ジェネレーターで追加の状態をユーザーに公開したい場合は、ジェネレーター関数コードをメソッドに入れて、クラスとして簡単に実装できることを忘れないでください。」__iter__()
import io
class playyield:
def __init__(self,fp):
self.completefp = fp
def __iter__(self):
for line in self.completefp:
if 'python' in line:
yield line
if __name__ =='__main__':
with io.open(r'K:\Data\somefile.txt','r') as fp:
playyieldobj = playyield(fp)
for i in playyieldobj:
print I
質問:
- ここで余分な状態とはどういう意味ですか?
- に別の関数を使用する代わりに
yield
insideを使用する利点は何ですか?__iter__ ()
yield