开发者

Python Unbound Method TypeError

The method get_pos is supposed to grab what the user inputs in the entry. When get_pos is executed, it returns with:

TypeError: unbound method get_pos() must be called with app instance as first argument (got nothing instead)

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


You reported this error:

TypeError: unbound method get_pos() must be called with app instance as first argument (got nothing instead)

What this means in layman's terms is you're doing something like this:

class app(object):
    def get_pos(self):
        ...
...
app.get_pos()

What you need to do instead is something like this:

the_app = app()  # create instance of class 'app'
the_app.get_pos() # call get_pos on the instance

It's hard to get any more specific than this because you didn't show us the actual code that is causing the errors.


I've run into this error when forgetting to add parentheses to the class name when constructing an instance of the class:

from my.package import MyClass

# wrong
instance = MyClass

instance.someMethod() # tries to call MyClass.someMethod()

# right
instance = MyClass()


instance.someMethod()


My crystal ball tells me that you are binding app.get_pos to a button using the class app (which really should be called App) instead of creating an instance app_instance = app and using app_instance.get_pos.

Of course as others have pointed out there are so many other issues with the code you did post it is a bit hard to guess at the mistakes in the code you didn't post.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜