Python - «макет объекта»

1

может ли кто-нибудь описать следующее исключение? Что такое "макет объекта" и как он определяется? Благодаря

Traceback (most recent call last):
  File "test_gui.py", line 5, in <module>
    suite = AlgorithmEngine('gui_suite')
  File "/home/honza/Research/Voiar/algorithm.py", line 169, in __init__
    self.algorithms = self._initAlgorithms()
  File "/home/honza/Research/Voiar/algorithm.py", line 232, in _initAlgorithms
    self._initGUIAlgorithm(obj)
  File "/home/honza/Research/Voiar/algorithm.py", line 218, in _initGUIAlgorithm
    cls.__bases__ = bases
TypeError: __bases__ assignment: 'QWidget' object layout differs from 'GUIAlgorithm'
Теги:
class-design

1 ответ

4
Лучший ответ

Это означает, что вы пытались изменить тип объекта (назначая __bases__), а новый тип несовместим со старым. Это происходит, когда базовая структура данных C не одинакова для обоих типов.

См. http://www.mail-archive.com/[email protected]/msg52950.html для списка различий между типами, которые могут вызвать это исключение.

  • 1
    Немного разочаровывает, как много предостережений в целом встречается, когда вы входите в (открытые) внутренние компоненты Python - последовательность и чистота Python просто нарушаются. Это только один пример.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню