Судя только по отступу вашего примера, похоже, что updateSearch действительно не является частью определения класса.
Предполагая, что отступ является ошибкой разметки, и на основании сообщения об ошибке, о котором вы сообщаете, другая проблема заключается в том, что вы переопределяете self
, поэтому self.updateSearch указывает на верхний уровень, а не на класс EditStudentWindow.Обратите внимание, что в сообщении говорится Toplevel instance has no attribute 'updateSearch'
вместо EditStudentWindow instance...
Как правило, такие виджеты создаются с наследованием, а не с композицией.Вы можете рассмотреть возможность рефакторинга вашего кода, чтобы он выглядел примерно так:
class EditStudentWindowClass(Tkinter.Toplevel):
def __init__(self, *args, **kwargs):
Tkinter.Toplevel.__init__(self, *args, **kwargs)
self.title('Edit Students')
...