Вы получаете ошибку из-за этой строки кода:
self.myReturnButton = Button(self, text='Return', command=self.returnMovie(Account))
Приведенный выше код точно такой же, как этот:
result = self.returnMovie(Account)
self.myReturnButton = Button(self, text='Return', command=result)
Таким образом, вы звоните self.returnMovie(Account)
перед установкой self.selected_index
, поэтому он выдает ошибку при попытке обратиться к этому атрибуту.
При установке опции command
необходимо указать вызываемый - по существу, имя функции.Обычно вы должны предоставить команду, которая не требует аргумента, но, поскольку ваша команда требует аргумента, простое решение состоит в использовании lambda
:
self.myReturnButton = Button(..., command=lambda: self.returnMovie(Account))