Основываясь на вызове, который вы делаете на repaint()
в Shape, я предполагаю, что он находится во внутреннем классе. Поэтому он имеет скрытую переменную, ссылающуюся на свой охватывающий экземпляр. Он попытается сериализовать этот объект вместе с собой. Является ли внешний класс сериализуемым? Или еще лучше, может ли Shape быть превращен в обычный класс верхнего уровня?
Выполните итерацию по желаемым координатам, например:
for row, column in coordinates:
ones[row][column] = 0
Если у вас еще нет матрицы с единицами, вы можете использовать понимание списка, так что вам придется повторять только один раз зависит от отношения единиц к нулям в этом случае)
Просто выполните итерации по индексу, имеющемуся в вашем массиве координат, и присвойте значениям вашего массива, которые должны быть изменены при этих индексах, значение 0, например:
for i in coordinatesArray:
toModify[i[0]][i[1]] = 0
Если ваш массив, который нужно изменить, не еще не заполнены, сначала добавьте их, используя цикл for:
for i in range(x):
toModify.append(y * [1])