Можешь объяснить назначение методов `__iter__` и `__next__` в Python и как они работают вместе для реализации протокола итератора? — ДейлиПреп