1
resposta

[Dúvida] Implementação do "__len__"

Na parte 8 do sexto capítulo, foi passado o seguinte exercício:

class Listinha:
    def __init__(self, items):
        self.items = items

   def __iter__(self):
        return self.items.__iter__()

meu_objeto = Listinha([1, 2, 4])

contador = 0
for item in meu_objeto:
    contador += 1 

if len(meu_objeto) == contador:
    print('São iguais!')
else:
    print('Não são iguais!')

Eu consegui resolver trocando o "iter" por "len" mas ainda não entendi bem como funciona a implementação.

Meu código final ficou dessa forma:

class Lista:

    def __init__(self, items):
        self.item = items

    def __len__(self):
        return self.item


meu_objeto = Lista([1, 2, 4]).__len__()

contador = 0

for item in meu_objeto:
    contador += 1

if len(meu_objeto) == contador:
    print('São iguais!')
else:
    print('Não são iguais!')
1 resposta

Fala amigon é difícil explicar sobre iteradores, recomendo que dê uma olhada nesse vídeo: https://www.youtube.com/watch?v=KyqiduLIL5k