Python Unbound Method TypeError

妖精的绣舞 提交于 2019-12-17 11:48:08

问题


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

回答1:


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.




回答2:


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()



回答3:


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.



来源:https://stackoverflow.com/questions/6012799/python-unbound-method-typeerror

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!