Python未绑定方法TypeError

时间:2011-05-16 03:00:17

标签: python methods tkinter

方法get_pos应该抓住用户在条目中输入的内容。执行get_pos时,它返回:

  

TypeError:必须使用app instance作为第一个参数调用未绑定方法get_pos()(没有取而代之)

代码:

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

3 个答案:

答案 0 :(得分:43)

您报告了此错误:

  

TypeError:必须使用app instance作为第一个参数调用未绑定方法get_pos()(没有取而代之)

通俗地说,这意味着你正在做这样的事情:

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

你需要做的是这样的事情:

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

很难得到比这更具体的信息,因为你没有向我们展示导致错误的实际代码。

答案 1 :(得分:16)

在构建类的实例时忘记在类名中添加括号时遇到此错误:

来自my.package导入MyClass

# wrong
instance = MyClass

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

# right
instance = MyClass()


instance.someMethod()

答案 2 :(得分:2)

我的水晶球告诉我你使用类app.get_pos(实际上应该称为app)而不是创建实例Appapp_instance = app绑定到按钮并使用app_instance.get_pos

当然,正如其他人已经指出,你发布的代码存在很多其他问题,但是很难猜到你没有发布的代码中的错误。