Mesmo implementando o método __len__
o código continuou dando erro. Eu fiz o seguinte:
from collections.abc import Sized
class MinhaListagem(Sized):
def __init__(self, descricao):
self.descricao = descricao
def __str__(self):
return self.descricao
def __len__(self):
return len(self.descricao)
lista = MinhaListagem()
print(lista)
len(lista)
Erro: Traceback (most recent call last): File "C:/Users/karol/PycharmProjects/modelo/teste.py", line 13, in lista = MinhaListagem() TypeError: init() missing 1 required positional argument: 'descricao'
O código só funcionou quando eu inseri itens na lista:
from collections.abc import Sized
class MinhaListagem(Sized):
def __init__(self, descricao):
self.descricao = descricao
def __str__(self):
return self.descricao
def __len__(self):
return len(self.descricao)
lista = MinhaListagem('terra')
print(lista)
print(f'Tamanho da lista: {len(lista)}')
saída:
terra
Tamanho da lista: 5
Gostaria de saber porque ocorreu esse erro. Sempre que a lista estiver vazia ocorrerá erro?