Найти - Пользователи
Полная версия: Реализация итератора
Начало » Python для новичков » Реализация итератора
1
Boris875
Есть примерно вот такой класс
class Test():
    def __init__(self, a, b):
        self.a = a
        self.b = b
    def __getitem__(self, key):
        return getattr(self, key)
    def __setitem__(self, key, value):
        setattr(self, key, value)

Подскажите как сделать, чтобы он поддерживал итерации, то есть чтобы в цикле можно было пройтись по всем его атрибутам?
Paranoia_Agent
a=Test(1,2)
print(a.__dict__)
for x in a.__dict__:
    print(x)

Еще классная штука:
for x in Test.__dict__:
    print(x)
Isem
Добавьте метод:
def __iter__(self):
    return iter(self.__dict__)

Теперь можно так:
>>> a = Test(5,6)
>>> print( *a )
a b
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB