Метод __iter__ списка python, вызываемый в каждом цикле?

Я пытаюсь создать класс, унаследованный от списка Python. Я хочу, чтобы элементы списка инициализировались / завершались в каждом цикле списка. Я думал, что это можно сделать, переопределив метод __ iter __ списка python, но я могу ' Кажется, он не работает. Кажется, что метод __ iter __ вызывается только один раз? (см. ниже)

class MyList(list):
    def __iter__(self):
        print 'do something'
        return list.__iter__(self)

my_list = MyList(range(10))
print my_list

for item in my_list:
    print item

Выход

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
do something
0
1
2
3
4
5
6
7
8
9

Есть идеи, как я могу достичь того, что хочу сделать?

9
задан joaquin 26 November 2011 в 07:16
поделиться