Мне нужна базовая помощь с моим кодом. Я пытаюсь создать новый список со значением для переменной self.add_programs
в каждый раз, когда я использую переменную program_controls
, чтобы добавить список кнопок для хранения в массивах.ошибка python: IndexError: индекс индекса за пределами диапазона
Когда я пытаюсь это:
self.add_programs = list()
self.rows += 1
program_controls = xbmcgui.ControlButton(
int(position_start),
int(position_top),
int(program_width),
int(program_height),
program_title,
focusTexture = self.path + self.button_focus,
noFocusTexture = self.path + self.button_nofocus,
textColor ='0xFFFFFFFF',
focusedColor ='0xFF000000'
)
self.add_programs[self.rows].append(ProgramControls(program_controls, program))
Это дает мне ошибку: индекс списка из диапазона
Ошибка прыгают на этой линии:: IndexError
self.add_programs[self.rows].append(ProgramControls(program_controls, program))
Вот код:
class ProgramControls(object):
def __init__(self, control, program):
self.control = control
self.program = program
class MyClass(xbmcgui.WindowXML):
def __init__(self):
self.add_programs = list()
self.rows = 0
def GoDown(self):
self.add_programs = list()
self.rows += 1
program_controls = xbmcgui.ControlButton(
int(position_start),
int(position_top),
int(program_width),
int(program_height),
program_title,
focusTexture = self.path + self.button_focus,
noFocusTexture = self.path + self.button_nofocus,
textColor ='0xFFFFFFFF',
focusedColor ='0xFF000000'
)
self.add_programs[self.rows].append(ProgramControls(program_controls, program))
prog_button = [elem.control for elem in self.add_programs]
if self.programs == False:
self.addControls(prog_button)
Не могли бы вы помочь мне, как я могу хранить кнопки в массивах каждый раз, когда добавляю список кнопок?
Если это возможно, сообщите, пожалуйста.
Я не совсем понимаю, что вы пытаетесь сделать, но что, если вы вообще не указали список? Как 'self.add_programs.append (ProgramControls (program_controls, program))' – Kevin
'self.add_programs' короче' self.rows'; например, рассмотрим: arr = [1]; arr [2] '... Нет' arr [2] ', поэтому вы получите эту ошибку .... Вы можете использовать' self.add_programs [self.rows - 1] ', но я не проверьте свой код слишком тщательно ... – Carpetsmoker
Попробуйте 'self.add_programs.append (...)'. – Javier