Задать вопрос

Как исправить ошибки AttributeError: 'Field' object has no attribute 'spritedict', если она возникает только при проверке дебаггером?

Здравствуйте! В качестве школьного проекта создаю игру на python 3.7.1 с помощью pygame. Пытаюсь делать так, чтобы в поле с ячейками "камень" падал вниз. Поле состоит из группы (наследник класса pygame.sprite.Group) со "строками" (тоже наследник от pygame.sprite.Group), которые содержат в себе "ячейки" (наследник pygame.sprite.Sprite). У каждой ячейки есть свой номер в строке и номер самой строки, к которой она принадлежит.

Для пересоздания ячеек в поле и линиях предусмотрены методы замены типа ячеек, например, с пустой на стену или камень. Как ни странно, но при пересоздании ячейки их нумерация сбивается, хотя этого происходить не должно.

Но проблема не совсем в этом: при попытке проследить источник ошибки через дебаггер, он, уходя в дебри Pygame, выдает вот это:
AttributeError: 'Field' object has no attribute 'spritedict'


Вот полный текст ошибки:
Traceback (most recent call last):
  File "D:\Python 3.7.1\Workshop\Проект - 10-11 классы\game v.2.py", line 260, in <module>
    field1 = Field(2,2,100,100,'e')
  File "D:\Python 3.7.1\Workshop\Проект - 10-11 классы\game v.2.py", line 193, in __init__
    self.f_width = width
  File "D:\Python 3.7.1\Workshop\Проект - 10-11 классы\game v.2.py", line 193, in __init__
    self.f_width = width
  File "D:\Python 3.7.1\lib\bdb.py", line 88, in trace_dispatch
    return self.dispatch_line(frame)
  File "D:\Python 3.7.1\lib\bdb.py", line 112, in dispatch_line
    self.user_line(frame)
  File "D:\Python 3.7.1\lib\idlelib\debugger.py", line 24, in user_line
    self.gui.interaction(message, frame)
AttributeError: 'Field' object has no attribute 'spritedict'


Причем самому запуску программы это не мешает, но дебаггер при проверке выдает ошибку.
Если кто-нибудь сталкивался с этим, дайте совет, что можно сделать. Код самой программы не скидываю, поскольку там 300+ строк и весь завязан на наследовании.

Заранее спасибо.

P.S. Аналогичная ошибка:
Traceback (most recent call last):
  File "D:\Python 3.7.1\Workshop\Проект - 10-11 классы\game v.2.py", line 271, in <module>
    field1.Column_Remake(2,3,9,1,'e')
  File "D:\Python 3.7.1\Workshop\Проект - 10-11 классы\game v.2.py", line 235, in Column_Remake
    self.line_list[self.counter].Slice_Remake(self.column_number,self.column_number,self.vert_interval,self.column_mat)
  File "D:\Python 3.7.1\Workshop\Проект - 10-11 классы\game v.2.py", line 187, in Slice_Remake
    self.Cell_Remake(self.count,self.slice_mat)
  File "D:\Python 3.7.1\Workshop\Проект - 10-11 классы\game v.2.py", line 176, in Cell_Remake
    self.cell_list[self.position] = Cell(CELL_SIZE[0],CELL_SIZE[1],self.placex + self.position * GAP_X,self.placey,self.position,self.number,self.new_material)
  File "D:\Python 3.7.1\Workshop\Проект - 10-11 классы\game v.2.py", line 28, in __init__
    self.line_number = line_number
  File "D:\Python 3.7.1\Workshop\Проект - 10-11 классы\game v.2.py", line 28, in __init__
    self.line_number = line_number
  File "D:\Python 3.7.1\lib\bdb.py", line 88, in trace_dispatch
    return self.dispatch_line(frame)
  File "D:\Python 3.7.1\lib\bdb.py", line 112, in dispatch_line
    self.user_line(frame)
  File "D:\Python 3.7.1\lib\idlelib\debugger.py", line 24, in user_line
    self.gui.interaction(message, frame)
AttributeError: 'Cell' object has no attribute '_Sprite__g'
  • Вопрос задан
  • 93 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы