В принципе там всё просто и в рамках документации, пока объекты примерно таких классов используются:
class basicObject(object):
def __init__(self):
print "A bugogoa"
Всё становится гораздо сложнее, когда у нас в объекте появляется ссылка на другой объект, например:
class extendedObject(object):
def __init__(self):
self.basicObject = basicObject()
Тут мы на приеме объекта получим InsecureJelly, я примерно догадываюсь почему, но связно объяснить сейчас не могу, может кто расскажет?
В общем встал вопрос, а что делать?
Встал ответ: а хрен его знает.
Я сел. Думать.
Хорошенько подумав решил, что нужно сериализовать self.basicObject руками и слать его уже упакованным в строку, чтоб нидаибались), родилось вот это:
from StringIO import StringIO
import pickle, zlib
class extendedObject(object):
def setBasicObject(self, basicObject):
s_basicObject = StringIO()
pickle.dump(basicObject, s_basicObject)
s_basicObject.flush()
self.basicObject = zlib.compress(
s_basicObject.getvalue())
zlib.compress здесь для того, чтобы у нас StringIO объекта не оставалось, zlib.compress возвращает сжатую строку.
Ну вот вроде и всё, я не знаю, на сколько такое решение правильное и безопасное, сдается мне, что есть и более прямые пути, просто я о них еще не знаю)
Как только вкурю, как это всё работает «изнутри», то отпишусь.