Функция не видит переменную-массив python

в результате выполнения кода возникает ошибка NameError

не видит массив numbers. пробовала через global (как в коде), но не помогает.

Если прописать просто методы без класса - работает. но в этом случае нужен класс

class MyWin(QtWidgets.QMainWindow):

    ...

    numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F']        
    def checking(self):

        def changeEnable(firstIndex = 0, param = False):
            global numbers
            for i in range(firstIndex, len(numbers)):
                getattr(self.ui, "pb_%s" %(numbers[i])).setEnabled(param)

        changeEnable(0, True)
        ...


Ответы (1 шт):

Автор решения: S. Nick

Попробуйте так:

class MyWin(QtWidgets.QMainWindow):

    ...

        self.numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F']  

    def checking(self):

        def changeEnable(firstIndex = 0, param = False):
            # global numbers
            for i in range(firstIndex, len(self.numbers)):
                getattr(self.ui, "pb_%s" %(self.numbers[i])).setEnabled(param)

        changeEnable(0, True)
        ...
→ Ссылка