logo

So beheben Sie, dass das Objekt „Liste“ in Python nicht aufrufbar ist

Eine Liste ist auch ein Objekt, das zum Speichern von Elementen unterschiedlicher Datentypen verwendet wird. Es kommt häufig vor, dass bei der Verwendung der Liste in unseren Python-Programmen die Fehlermeldung „Listenobjekt ist nicht aufrufbar“ auftritt. In diesem Artikel erfahren Sie, warum dieser Fehler auftritt und wie Sie ihn beheben können.

Was bedeutet es, dass das Objekt „Liste“ in Python nicht aufrufbar ist?

Der Das Objekt „Liste“ ist nicht aufrufbar Fehler ist ein häufiger Laufzeitfehler, auf den Python-Entwickler stoßen. Es tritt auf, wenn Sie versuchen, ein Listenobjekt so aufzurufen, als wäre es eine Funktion. In Python sind Listen Objekte, die eine geordnete Sammlung von Elementen enthalten. Der Zugriff auf sie erfolgt über Indizierung oder Slicing und nicht über den Aufruf wie bei Funktionen.



Syntax

 ''list' object is not callable'>

Nachfolgend sind die Gründe aufgeführt, warum das Python-Listenobjekt nicht aufrufbar ist Python :

  • Variablennamen Konflikte mit der Funktion.
  • Missbrauch von Klammern
  • Methode kollidiert mit Eigenschaft.

Variablenname steht in Konflikt mit der Funktion.

Im folgenden Code wird die Liste als Variablenname zugewiesen, was zu einem Konflikt mit der integrierten Funktion führt Liste() . Um dieses Problem zu beheben, benennen Sie entweder die Variable um oder greifen Sie explizit auf die zu list()-Funktion von dem Eingebautes Modul.



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)>

Ausgabe

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

Missbrauch von Klammern

Im folgenden Code werden Klammern anstelle von eckigen Klammern für die Listenindizierung missbraucht, was zu einem „ Liste „Objekt ist kein aufrufbarer Fehler.“

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

Ausgabe



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

Methode kollidiert mit Eigenschaft.

Im folgenden Beispiel tritt der Fehler aufgrund eines Namenskonflikts zwischen der Methode auf markiert() und die Eigentumsmarken. Hier verfügt die Klasse „Student“ über ein Attribut „Noten“, das zunächst als Liste mit den Noten des Schülers zugewiesen wird. Allerdings definiert die Klasse auch eine Methode, markiert() , was die gleiche Liste von Markierungen zurückgibt.

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())>

Ausgabe

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

Lösung für Das Python-Listenobjekt kann in Python nicht aufgerufen werden

Nachfolgend finden Sie die Lösungsansätze für das Python-„Listen“-Objekt, das in Python nicht aufrufbar ist

  • Korrekter Variablenname
  • Richtige Verwendung von Klammern
  • Benennen Sie die Konfliktmethode und das Attribut um

Korrekter Variablenname

ICH Benennen Sie die Variable in der folgenden Lösung um Liste um zu vermeiden, dass integrierte Funktionsnamen überschattet werden. Verwenden Sie für die Indizierung eckige Klammern anstelle von Klammern, um auf Elemente in der Liste zuzugreifen. Drucken Sie beide Listen aus, um deren Inhalt anzuzeigen.

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)>

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

Richtige Verwendung von Klammern

Um auf ein Listenelement zuzugreifen, verwenden Sie immer eckige Klammern, wie im folgenden Code verwendet.

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

Ausgabe
Ruler>

Benennen Sie die Konfliktmethode und das Attribut um

Durch die Umbenennung der Eigenschaft in Markierungen und die Methode dazu get_marks() , wir werden den Namenskonflikt beseitigen und dies sicherstellen student.get_marks() Ruft die Liste der Markierungen ab, ohne dass der TypeError auftritt.

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())>

Ausgabe
[95, 67, 81, 64, 87]>