Чтобы назначение решило вопрос в моем случае.

наилучший способ написать__getstate__ метод, который мариноваетпочти все атрибуты объекта, но исключает несколько?

У меня есть объект со многими свойствами, в том числе тот, который ссылается на метод instance. Метод экземпляра не может быть рассортирован, поэтому я получаю сообщение об ошибке при попытке засечь этот объект:

class Foo(object):
    def __init__(self):
        self.a = 'spam'
        self.b = 'eggs'
        self.c = 42
        self.fn = self.my_func
    def my_func(self):
        print 'My hovercraft is full of eels'

import pickle
pickle.dumps(Foo())              # throws a "can't pickle instancemethod objects" TypeError

Этот__getstate__ Метод исправляет это, но затем я должен вручную включить все свойства, которые я хочу сериализовать:

def __getstate__(self):
    return { 'a': self.a, 'b': self.b, 'c': self.c }

Это не очень масштабируемо и не поддерживается, если у меня есть объект со многими атрибутами или он часто меняется.

Единственная альтернатива, о которой я могу подумать, - это какая-то вспомогательная функция, которая перебирает свойства объекта и добавляет их (или нет) в словарь в зависимости от типа.

Ответы на вопрос(6)

Ваш ответ на вопрос