La méthode get_pos
est censé saisir ce que l'utilisateur entre dans l'entrée. Quand get_pos
est exécuté, il revient avec:
TypeError: la méthode non liée get_pos () doit être appelée avec l'instance d'application comme premier argument (rien obtenu à la place)
Code:
class app(object):
def __init__(self,root):
self.functionframe=FunctionFrame(root, self)
self.functionframe.pack(side=BOTTOM)
def get_pos(self):
self.functionframe.input(self)
class FunctionFrame(Frame):
def __init__(self,master,parent):
Frame.__init__(self,master,bg="grey90")
self.entry = Entry(self,width=15)
self.entry.pack
def input(self):
self.input = self.entry.get()
return self.input
Vous avez signalé cette erreur:
TypeError: la méthode non liée get_pos () doit être appelée avec l'instance d'application comme premier argument (rien obtenu à la place)
En termes simples, cela signifie que vous faites quelque chose comme ceci:
class app(object):
def get_pos(self):
...
...
app.get_pos()
Ce que vous devez faire à la place est quelque chose comme ceci:
the_app = app() # create instance of class 'app'
the_app.get_pos() # call get_pos on the instance
Il est difficile d'être plus précis que cela, car vous ne nous avez pas montré le code réel à l'origine des erreurs.
J'ai rencontré cette erreur en oubliant d'ajouter des parenthèses au nom de la classe lors de la construction d'une instance de la classe:
depuis my.package import MyClass
# wrong
instance = MyClass
instance.someMethod() # tries to call MyClass.someMethod()
# right
instance = MyClass()
instance.someMethod()
Ma boule de cristal me dit que vous liez app.get_pos
à un bouton utilisant la classe app
(qui devrait vraiment s'appeler App
) au lieu de créer une instance app_instance = app
et en utilisant app_instance.get_pos
.
Bien sûr, comme d'autres l'ont souligné, il y a tellement d'autres problèmes avec le code que vous avez publié, il est un peu difficile de deviner les erreurs dans le code que vous n'avez pas publié.