Пытаюсь распиклить файл, на что получаю TypeError:
TypeError: ('object.__new__(X): X is not a type object (classobj)', <function _reconstructor at 0xf7d53614>, (<class packet.RequestContainer at 0xf7b9da4c>, <type ‘object’>, None))
У меня есть подозрение, почему так может быть. Вопрос, в правильном ли направлении я размышляю?
В данный файл запикливается объект класса RequestContainer ( который является наследником другого базового класса ):
1. class BaseRequestContainer(object)
2. class RequestContainer(BaseRequestContainer)
При распикливании таких конструкций, Exception возникает в copy_reg.
def _reconstructor(cls, base, state):
if base is object:
obj = object.__new__(cls)
else:
obj = base.__new__(cls, state)
base.__init__(obj, state)
return obj
в момент obj = object.__new__(cls).
В качестве cls - RequestContainer, _base у которого типа - BaseRequestContainer, а не типа object.
Правильно ли я понимаю, что в этот момент логика пытается создать класс, базовым классом которого является object, однако в нашем случае базовый класс для нового объекта - RequestContainer, и в результате этого несоответствия и возникает данный TypeError?