Junior — Middle
98
Que funções um objeto deve implementar para que possa ser percorrido com um ciclo in em Python?
Empresas quando solicitadas
Resposta da IA
sobes.tech IA
Чтобы объект можно было обходить с помощью цикла for ... in в Python, он должен реализовывать протокол итерации. Это значит, что объект должен иметь метод __iter__(), который возвращает итератор.
Итератор, в свою очередь, должен реализовывать метод __next__(), который возвращает следующий элемент последовательности и возбуждает исключение StopIteration, когда элементы заканчиваются.
Пример:
class MyIterable:
def __init__(self, data):
self.data = data
def __iter__(self):
self.index = 0
return self
def __next__(self):
if self.index < len(self.data):
result = self.data[self.index]
self.index += 1
return result
else:
raise StopIteration
obj = MyIterable([1, 2, 3])
for item in obj:
print(item)
Таким образом, наличие методов __iter__() и __next__() позволяет объекту быть итерируемым.