Ну что ж, это уже дело вкуса, а о вкусах не спорят… :-)
Просто мне кажется, что итерируемые объекты (за редким исключением, вроде генераторов) должны нормально перебираться хоть в десяти вложенных циклах
for. Я не раз сталкивался с тем, что приходилось править из-за этого не мной написанные классы… А ты попробуй отлови эту ошибку!!! А всё из-за лени и простоты
def __iter__(self): return self.
А насчёт “генератора из __iter__”, то можно было понять, что я погорячился немного:
ZZZ
С другой стороны мы можем создать в __iter__ класс-итератор типа твоего и его и вернуть – тоже допустимо и иногда полезно.