필자는 파이썬에서 다른 반복자를 감싸는 반복자를 구현하고 있으며 반복자의 출력을 전달하기 전에 후 처리합니다.StopIteration 예외가 내 반복자를 통해 자동으로 위쪽으로 전파됩니까?
내부 반복자 완료class MyIter(object):
"""A filter for an iterator that returns strings."""
def __init__(self, string_iterator):
self.inner_iterator = string_iterator
def __iter__(self):
return self
def next(self):
return "FILTERED BY MYITER: " + self.inner_iterator.next()
, 그것은 대하여 StopIteration 예외를 발생한다 : 여기에 각 FILTERED BY MYITER:
문자열을 반환 앞에 추가 반복자 소요 사소한 예이다. 어떤 코드라도 반복자를 사용하여이 예외를 전파하기 위해 특별한 조치를 취해야합니까? 아니면 자동으로 발생하여 이터레이터가 올바르게 종료됩니다.
우수, 방금 클래스의'__iter__' 메소드에서'yield'와 generator 표현식을 사용할 수 있다는 것을 배웠습니다. iterable 클래스에서 이들을 사용하는 방법을 잘 모르겠습니다. –