TypeError: 'builtin_function_or_method' objet n'est pas subscriptable
Question
elif( listb[0] == "-test"):
run_all.set("testview")
listb.pop[0]
ERREUR : Exception dans Tkinter rappel retraçage (le plus récent appel dernière): Fichier "/Tools/python/2.7.2/lib/python2.7/lib-tk/Tkinter.py", ligne 1410, Appel retour self.func (* args) Fichier "./edit.py", ligne 581, en Populate listb.pop [0] TypeError: 'builtin_function_or_method' objet est pas subscriptable
La ligne # 581 est représenté par la dernière déclaration de la pop dans le code ci-dessus. run_all est un LaChaine.
Pourquoi ai-je cette erreur et comment peut-il être résolu?
La solution
Je pense que vous voulez
listb.pop()[0]
L'expression listb.pop
est une expression de python valide qui se traduit par une référence à la méthode de pop
, mais ne remet pas en réalité cette méthode. Vous devez ajouter les parenthèses ouvertes et à proximité d'appeler la méthode.
Autres conseils
Vous essayez de pop comme si l'accès était une liste ou un tuple, mais merde est pas. Il est une méthode.
au lieu d'écrire écriture listb.pop[0]
listb.pop()[0]
^
|
On dirait que vous avez tapé entre parenthèses au lieu de parenthèses par erreur.
Cette erreur se produit lorsque vous ne l'utilisez entre parenthèses avec le fonctionnement de pop
. Ecrire le code de cette manière.
listb.pop(0)
Ceci est une expression de python valide.
Pour votre information, ce n'est pas une réponse à la poste. Mais il peut aider les futurs utilisateurs qui peuvent obtenir l'erreur avec le message:
TypeError: 'builtin_function_or_method' objet n'est pas subscriptable
Dans mon cas, il a été produit en raison de la mauvaise indentation.
Juste indenter la ligne de code a résolu la question.