Открытый метод Python TypeError
Метод get_pos
должен захватить то, что пользователь вводит в запись. Когда get_pos
выполняется, он возвращается с:
TypeError: unbound метод 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
Ответы
Ответ 1
Вы сообщили об этой ошибке:
TypeError: unbound метод 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
Трудно получить более конкретную информацию, чем это, потому что вы не указали нам фактический код, вызывающий ошибки.
Ответ 2
Я столкнулся с этой ошибкой, забыв добавить круглые скобки к имени класса при построении экземпляра класса:
из my.package import MyClass
# wrong
instance = MyClass
instance.someMethod() # tries to call MyClass.someMethod()
# right
instance = MyClass()
instance.someMethod()
Ответ 3
Мой хрустальный шар говорит мне, что вы привязываете app.get_pos
к кнопке, используя класс app
(который действительно должен называться app
) вместо создания экземпляра app_instance = app
и использования app_instance.get_pos
.
Конечно, как указали другие, есть много других проблем с кодом, который вы опубликовали, это немного сложно угадать на ошибках в коде, который вы не отправляли.