Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 9, 2017 10:53:23

Dmitriy_b
Зарегистрирован: 2017-08-28
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по книге Лутца: итераторы

Ребят, не совсем ясно что имеется ввиду когда сравниваются две возможности считывания строк из файла.
Первый - понятен с помощью метода f.readline() . Со вторым методом f.__next__ неясно как его проверить.
f=open(test.py)
f.__next__()

Выдает
AttributeError: ‘file’ object has no attribute ‘__next__’

Как в таком случае воспользоваться __next__ чтоб увидеть как оно работает?
Спасибо.

Офлайн

#2 Сен. 9, 2017 11:08:04

Stright
От: Кострома
Зарегистрирован: 2015-01-20
Сообщения: 139
Репутация: +  16  -
Профиль   Отправить e-mail  

вопрос по книге Лутца: итераторы

Предположу, что вы используете вторую ветку python, в ней у итераторов есть метод iterator.next(), который в третьей ветке был переименован в __next__()

Офлайн

#3 Сен. 9, 2017 11:11:17

Dmitriy_b
Зарегистрирован: 2017-08-28
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по книге Лутца: итераторы

да действительно, 2.7 версия, спасибо, не подумал

Офлайн

#4 Сен. 10, 2017 05:15:56

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10014
Репутация: +  857  -
Профиль   Отправить e-mail  

вопрос по книге Лутца: итераторы

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
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version