Форум сайта python.su
0
Ребят, не совсем ясно что имеется ввиду когда сравниваются две возможности считывания строк из файла.
Первый - понятен с помощью метода f.readline() . Со вторым методом f.__next__ неясно как его проверить.
f=open(test.py)
f.__next__()
Выдает
AttributeError: ‘file’ object has no attribute ‘__next__’
Как в таком случае воспользоваться __next__ чтоб увидеть как оно работает?
Спасибо.
Офлайн
16
Предположу, что вы используете вторую ветку python, в ней у итераторов есть метод iterator.next(), который в третьей ветке был переименован в __next__()
Офлайн
0
да действительно, 2.7 версия, спасибо, не подумал
Офлайн
857
Dmitriy_bИспользуй встроенную функцию next(). Она знает, куда обращаться в каждой версии питона.
Как в таком случае воспользоваться __next__ чтоб увидеть как оно работает?
>>> it = iter([1, 2, 3]) >>> next(it) 1 >>> next(it) 2 >>> next(it) 3 >>> next(it) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration >>>
Офлайн