Форум сайта python.su
Добрый всем день, пытаюсь получить матрицу из экземпляров класса таким образом:
all_blocks = [[] for i in range(int(max_x / s))] for i in range(max_x): for j in range(max_y): block = Block(green, s, s) block.rect.x = i block.rect.y = j j += s all_blocks[count].append(block) i += s count += 1 if count >= max_x / s: count = 0
Отредактировано ArtyomZaitsev (Фев. 13, 2018 20:54:01)
Офлайн
ArtyomZaitsevРасходуете слишком много памяти?
pygame.error: Out of memory
Офлайн
Ну, это понятно. Вопрос же “почему?”. Я вот никак не могу дойти до того, чтобы понять, почему этот код “жрёт” память.
Офлайн
ищи куда память течет
>>> import sys >>> lst = [i for i in range(10000000)] >>> sys.getsizeof(lst) 81528056 >>>
Отредактировано vic57 (Фев. 14, 2018 17:15:14)
Офлайн
Если вдруг кому интересно, то вот так заработало:
all_blocks = [[] for i in range(int(max_x/s))] for i in range(int(max_x/s)): for j in range(int(max_y/s)): block = Block(green, s, s) block.rect.x = i * s block.rect.y = j * s j += 1 all_blocks[i].append(block) i += 1
Отредактировано ArtyomZaitsev (Фев. 14, 2018 18:27:47)
Офлайн