web-dev-qa-db-fra.com

TypeError: l'objet 'builtin_function_or_method' n'est pas souscriptable

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

ERROR: Exception dans le rappel Tkinter Traceback (appel le plus récent last): Fichier "/tools/python/2.7.2/lib/python2.7/lib-tk/Tkinter.py", ligne 1410, .__ dans appelez return self.func (* args) Fichier "./edit.py", ligne 581, peuplé listb.pop [0] TypeError: l'objet 'builtin_function_or_method' n'est pas souscriptable

La ligne # 581 est représentée par la dernière instruction pop dans le code ci-dessus . Run_all est un StringVar.

Pourquoi est-ce que je reçois cette erreur et comment peut-on la résoudre?

15
Ani

Je pense que tu veux

listb.pop()[0]

L'expression listb.pop est une expression python valide qui renvoie à la méthode pop, mais n'appelle pas cette méthode. Vous devez ajouter les parenthèses d'ouverture et de fermeture pour appeler la méthode.

21
srgerg

Vous essayez d'accéder à pop comme s'il s'agissait d'une liste ou d'un tuple, mais pop ne l'est pas. C'est une méthode.

4
c0m4

au lieu d'écrire listb.pop[0] write 

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

Cette erreur survient lorsque vous n'utilisez pas de crochets avec l'opération pop. Écrivez le code de cette manière.

listb.pop(0)

Ceci est une expression valide en python.

1
Tushar Palawat

On dirait que vous avez tapé des crochets au lieu de parenthèses par erreur.

0
Aamir Meman