Как составить список целых в пределах класса Python? - PullRequest
0 голосов
/ 27 ноября 2018

по какой-то причине этот код выдает эту ошибку:

player.py:

class player():
    def __init__(self, x, y, width, height):
        self.collisionXY[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

ошибка:

line 21, in __init__
self.collisionXY[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
AttributeError: 'player' object has no attribute 'collisionXY'

я хочу сохранить x1, x2, y1, y2 координаты сталкивающегося прямоугольника в виде целых чисел в списке collisionXY, как можно исправить код, чтобы сделать это

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Вы пытаетесь создать массив из 16 дюймов, инициализируемый в 0.

Вы можете использовать список

self.collisionXY = [0]*16

кортеж:

self.collisionXY = (0,)*16

или массив :

import array
...
self.collisionXY = array.array('l', [0]*16)
0 голосов
/ 27 ноября 2018

Если вы хотите присвоить список этой переменной, это будет

self.collisionXY = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

или просто

self.collisionXY = [0]*16

Когда вы пишете

self.collisionXY[16] =...

, чтоинтерпретируется как попытка записи в индекс 16 в self.collisionXY, что приводит к ошибке, поскольку self.collisionXY еще не определено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...