У меня есть обходной путь, но я все еще думаю о лучшем способе достижения моей цели. Я хочу, чтобы класс, производный от базового класса file , обращался к файлу построчно, но, между прочим, получал номер строки. Что-то вроде встроенной функции перечисления .
Я думаю, что класс должен быть таким:
class file2(file):
def __init__(self, filename):
file.__init__(self, filename)
self._num_line = 0
def __iter__(self):
self._num_line = 0
?
чтобы достичь этого
f2 = file2('myfile.txt')
for num_line, line in f2:
...
Моя текущая опция - создать генератор внутри дочернего класса:
def lines(self):
for line in self:
self._num_line += 1
yield (self._num_line, line)
но использование уродливо (ну, не так питонно, как хотелось бы):
f2 = file2('myfile.txt')
gen = f2.lines()
for i, lin in gen:
...
Есть ли простой способ добиться этого? Заранее спасибо,