Я делаю программу для решения судоку на Python.
У меня есть класс , внутренний класс , список , конструкторы и функция , что сделало бы список из Строк объектов.
class Table:
rows = []
def __init__(self):
initRows()
class Row:
numbers = []
def __init__(self):
"stuff that stores a list of integers in **numbers** list"
def initRows(self, numbers):
for i in range(9):
temp_row = self.Row(i, numbers)
self.rows.append(temp_row)
Программа выглядит так:
- Когда * Создан объект 1023 * Таблица , он автоматически пытается создать список длиной 9 объектов Строк с помощью функции initRows () .
- В initRows () функция, мы просто создаем временный объект класса Row и мгновенно append () его в список rows .
- Когда мы создаем объект Row , он просто сохраняет заданные числа для данной строки таблицы судоку.
- Если I print () the numbers список каждого временного объекта Row после его создания дает правильные значения.
[0, 0, 0, 7, 4, 0, 0, 0, 6]
[4, 0, 6, 8, 0, 0, 5, 0, 7]
[7, 0, 0, 0, 9, 0, 0, 0, 4]
[0, 3, 0, 9, 8, 4, 7, 0, 0]
[8, 2, 0, 6, 1, 3, 4, 0, 9]
[0, 4, 0, 0, 0, 0, 3, 0, 0]
[0, 6, 2, 3, 7, 0, 0, 0, 5]
[0, 0, 5, 4, 0, 9, 0, 0, 0]
[0, 7, 0, 0, 6, 1, 2, 0, 8]
Но когда я пытаюсь
print () , значения каждого объекта
Row после
for l oop повторяются один или несколько раз или после инициализации завершено, то список заполняется только последней
строкой объектом
[0, 7, 0, 0, 6, 1, 2, 0, 8]
[0, 7, 0, 0, 6, 1, 2, 0, 8]
[0, 7, 0, 0, 6, 1, 2, 0, 8]
[0, 7, 0, 0, 6, 1, 2, 0, 8]
[0, 7, 0, 0, 6, 1, 2, 0, 8]
[0, 7, 0, 0, 6, 1, 2, 0, 8]
[0, 7, 0, 0, 6, 1, 2, 0, 8]
[0, 7, 0, 0, 6, 1, 2, 0, 8]
[0, 7, 0, 0, 6, 1, 2, 0, 8]
[0, 7, 0, 0, 6, 1, 2, 0, 8]
Я искал в inte rnet для часов и нашел что у людей есть проблемы с функцией append () класса списка, но ничего не помогло.
Итак, мой вопрос: как я могу это сделать?
(Если нужна другая информация / часть кода: спрашивайте!)