2
respostas

Type Error. Não consigo exibir o tipo. Podem ajudar?


TypeError Traceback (most recent call last) in () 2 3 for elemento in lista: ----> 4 print(f'O elemento {elemento} é do tipo: ', type(elemento))

TypeError: 'list' object is not callable

2 respostas

Esse erro pode se dar quando você tenta usar uma lista como se fosse uma função, por exemplo lista().

Espero que ajude de alguma forma :)

Opa, só pra corrigir uma coisa, em python você pode chamar uma lista como função sim, se você der print(list()) você vai ter uma lista vazia, o bug em quêstão é por atribuir o nome list a qualquer outra coisa, o que faz com que você não consiga mais usar as propriedades da função list builtin, graças ao list agora estar apontando pra outra coisa na memoria.

Se eu digo:

list = "isso é uma lista"
print(list)
>>>isso é uma lista

Vai funcionar, mas agora list não é mais uma função então se eu tentar fazer list(abc) vai dar erro

list = "isso é uma lista"
print(list("abc"))
Traceback (most recent call last):
  File "C:\Users\Luige\PycharmProjects\aluraDev\obeflix_back\tests.py", line 4, in <module>
    print(list("abc"))
TypeError: 'str' object is not callable

No meu caso falou que 'str' não é chamavel no lugar de 'list' porquê eu atribui meu list a uma string mas se eu atribuisse a uma lista iria dizer TypeError: 'list' object is not callable.

O que deixa uma curiosidade legal, da pra você recriar a função de lista como você quiser, no meu caso eu fiz um exemplo simples que faz continuar funcionando mas perde todos os metodos como apend e outros.

def list(index):
    lista = []
    for i in range(int(len(index))):
        lista += index[i]
    return lista

print(list("abc"))
>>> ['a', 'b', 'c']

Sim, eu estou não recriei o metodo de lista em si, eu só recriei a função então ainda tem como criar listas com [], tanto que eu usei dentro da minha função mas muito provavelmente você consegue fazer 100% do 0 se quiser.