У меня есть объект, который определяет интерфейс итератора, а также содержит встроенный читатель файлов (и использует его интерфейс итератора следующим образом)
class MyIter(object):
def __init__(path):
self.file = open(path, "r")
def next(self):
line = self.file.next()
return line
def __iter__(self):
return self
Я называю это так:
r = MyIter("path_to_file")
for item in r:
print item
Это напечатает весь файл до последней строки. Мой вопрос в том, что мне никогда не приходилось добавлять какую-либо проверку EOF или проверять длину возвращаемой строки, чтобы указать какое-либо конечное условие. Почему это работает?
Ваша следующая реализация вызывает file.next()
собственную проверку EOF. «Этот метод возвращает следующую строку ввода или вызывает StopIteration при попадании в EOF, когда файл открыт для чтения»
Эта статья взята из Интернета, укажите источник при перепечатке.
Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.
я говорю два предложения