Есть следующий класс:
class MyClass: def __init__(self): self.__items = {}
Могу ли я сделать его итерируемым, без прямого доступа к свойству items?
obj = MyClass() for item in obj: ...
class MyClass: def __init__(self): self.__items = {}
obj = MyClass() for item in obj: ...
class MyClass(object): def __init__(self, items): self.__items = items def __iter__(self): for i in self.__items: yield i
>>> class MyClass: ... def __init__(self): ... self.__items = {1: 2, 3: 4} ... def __iter__(self): ... return iter(self.__items) ... >>> for i in MyClass(): ... print(i) ... 1 3 >>>