I believe you meant to use sender.selected_row instead of self.selected_row.

Note, if you are trying to have a one time prompt to have the user to select from a table, then take some one time action based on that, you might consider using the dialogs module. list_dialog wraps all of this logic, along with a modal wait that returns a value.