webentwicklung-frage-antwort-db.com.de

TypeError: Das Objekt 'builtin_function_or_method' kann nicht subskribiert werden

Elif( listb[0] == "-test"):
    run_all.set("testview")
    listb.pop[0]

ERROR: Ausnahme in Tkinter Callback Traceback (letzter Aufruf letzter): Datei "/tools/python/2.7.2/lib/python2.7/lib-tk/Tkinter.py", Zeile 1410, in anrufen return self.func (* args) Datei "./edit.py", Zeile 581, in bevölkern listb.pop [0] TypeError: Das Objekt 'builtin_function_or_method' kann nicht subskribiert werden

Die Zeile # 581 wird durch die letzte Pop-Anweisung im obigen Code dargestellt Run_all ist eine StringVar.

Warum erhalte ich diesen Fehler und wie kann er gelöst werden?

15
Ani

Ich denke du willst

listb.pop()[0]

Der Ausdruck listb.pop ist ein gültiger Python-Ausdruck, der zu einem Verweis auf die pop-Methode führt, diese Methode jedoch nicht aufruft. Sie müssen die offenen und schließenden Klammern hinzufügen, um die Methode aufzurufen.

21
srgerg

Sie versuchen, auf Pop zuzugreifen, als wäre es eine Liste oder ein Tupel, aber Pop ist nicht. Es ist eine Methode.

4
c0m4

anstatt listb.pop[0] schreiben zu schreiben 

listb.pop()[0]
         ^
         |
3
a ghost

Dieser Fehler tritt auf, wenn Sie keine Klammern mit der Operation pop verwenden. Schreiben Sie den Code auf diese Weise.

listb.pop(0)

Dies ist ein gültiger Python-Ausdruck.

1
Tushar Palawat

Sieht aus, als hätten Sie versehentlich Klammern anstelle von Klammern eingegeben.

0
Aamir Meman

Zu Ihrer Information, dies ist keine Antwort auf den Beitrag. Es kann jedoch zukünftigen Benutzern helfen, die den Fehler mit der Nachricht erhalten:

TypeError: Das Objekt 'builtin_function_or_method' kann nicht subskriptiert werden

In meinem Fall geschah dies aufgrund einer schlechten Einrückung.

Schon das Einrücken der Codezeile löste das Problem.

0