Я пытаюсь создать класс, унаследованный от списка 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
Есть идеи, как я могу достичь того, что хочу сделать?