logo

Cómo arreglar que el objeto 'lista' no se pueda llamar en Python

Una lista también es un objeto que se utiliza para almacenar elementos de diferentes tipos de datos. Es común ver el error 'el objeto de lista' no se puede llamar al usar la lista en nuestros programas Python. En este artículo, aprenderemos por qué ocurre este error y cómo resolverlo.

¿Qué significa que el objeto 'lista' no se puede llamar en Python?

El El objeto 'lista' no es invocable El error es un error de tiempo de ejecución común que encuentran los desarrolladores de Python. Ocurre cuando intentas llamar a un objeto de lista como si fuera una función. En Python, las listas son objetos que contienen una colección ordenada de elementos. Se accede a ellos mediante indexación o división, no llamándolos como funciones.



Sintaxis

 ''list' object is not callable'>

A continuación, se detallan las razones por las que el objeto 'lista' de Python no se puede invocar en Pitón :

cuantos ceros hay en mil millones
  • Nombre de la variable Conflictos con la función.
  • Mal uso de paréntesis
  • El método choca con la propiedad.

El nombre de la variable entra en conflicto con la función.

En el siguiente código, la lista se asigna como un nombre de variable, lo que entra en conflicto con la función incorporada lista() . Para resolver esto, cambie el nombre de la variable o acceda explícitamente a la función lista() desde el módulo incorporado.



Python3
# Create a list list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # Create a list of quantity moreNumbers = list(range(10,21)) # Print the list and quantity print(list) print(moreNumbers)>

Producción

que meses son q1
Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 4, in moreNumbers = list(range(10,21)) TypeError: 'list' object is not callable>

Mal uso de paréntesis

En el siguiente código, el uso indebido de paréntesis en lugar de corchetes para la indexación de listas, provoca un ' lista 'El objeto no es un error invocable.

Python3
items = ['Pencil', 'Eraser', 'Gel Pen', 'Ruler'] print(items(3))>

Producción



Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 3, in print(items(3)) TypeError: 'list' object is not callable>

El método choca con la propiedad.

En el siguiente ejemplo, el error se produce debido a un conflicto de nombres entre el método marcas() y las marcas de propiedad. Aquí, la clase Estudiante tiene calificaciones de atributo, que inicialmente se asignan como una lista que contiene las calificaciones del estudiante. Sin embargo, la clase también define un método, marcas() , que devuelve la misma lista de marcas.

Python3
class Student: def __init__(self, name, marks): self.name = name self.marks = marks def marks(self): return self.marks student = Student('Lalit', [95, 67, 81, 64, 87]) # Generates the error print(student.marks())>

Producción

Hangup (SIGHUP) Traceback (most recent call last): File 'Solution.py', line 11, in print(student.marks()) TypeError: 'list' object is not callable>

Solución para El objeto 'lista' de Python no se puede llamar en Python

A continuación, se detallan los enfoques para resolver que el objeto 'lista' de Python no se puede llamar en Python

java núcleo java
  • Nombre de variable correcto
  • Uso correcto de paréntesis
  • Cambiar el nombre del método y atributo del conflicto

Nombre de variable correcto

I En la siguiente solución, cambie el nombre de la variable. lista para evitar el sombreado de los nombres de las funciones integradas. Utilice corchetes para indexar en lugar de paréntesis para acceder a los elementos de la lista. Imprima ambas listas para mostrar su contenido.

Python3
# Create a list one2nine = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # Create a list of quantity moreNumbers = list(range(10,21)) # Print the list and quantity print(one2nine) print(moreNumbers)>

Producción
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]>

Uso correcto de paréntesis

Para acceder a un elemento de la lista, utilice siempre corchetes, como se utiliza en el siguiente código.

Python3
items = ['Pencil', 'Eraser', 'Gel Pen', 'Ruler'] print(items[3])>

Producción
Ruler>

Cambiar el nombre del método y atributo del conflicto

Al cambiar el nombre de la propiedad a marcas y el método para obtener_marcas() , eliminaremos el conflicto de nombres, asegurando que estudiante.get_marks() recupera la lista de marcas sin encontrar el TypeError.

Python3
class Student: def __init__(self, name, marks): self.name = name # Change the property name to _marks self._marks = marks # Rename the method to get_marks def get_marks(self): return self._marks student = Student('Lalit', [95, 67, 81, 64, 87]) # Outputs the list of marks print(student.get_marks())>

Producción
[95, 67, 81, 64, 87]>