Найти - Пользователи
Полная версия: Ошибка pygame.error: Out of memory
Начало » Python для новичков » Ошибка pygame.error: Out of memory
1
ArtyomZaitsev
Добрый всем день, пытаюсь получить матрицу из экземпляров класса таким образом:
 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
Но выдает ошибку “pygame.error: Out of memory”. В чем я косячу?
FishHook
ArtyomZaitsev
pygame.error: Out of memory
Расходуете слишком много памяти?
ArtyomZaitsev
Ну, это понятно. Вопрос же “почему?”. Я вот никак не могу дойти до того, чтобы понять, почему этот код “жрёт” память.
vic57
ищи куда память течет
 >>> import sys
>>> lst = [i for i in range(10000000)]
>>> sys.getsizeof(lst)
81528056
>>> 
ЗЫ может забыл count в начале обнулить?
ArtyomZaitsev
Если вдруг кому интересно, то вот так заработало:
 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
Как будто питону не нравятся итерации с i или J отличающимися от единицы.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB