Я не знаю что __setstate__
и __getstate__
методы делают, поэтому помогите мне с простым примером.
Вот очень простой пример для Python 2, который должен дополнять pickle docs .
class Foo(object):
def __init__(self, val=2):
self.val = val
def __getstate__(self):
print "I'm being pickled"
self.val *= 2
return self.__dict__
def __setstate__(self, d):
print "I'm being unpickled with these values:", d
self.__dict__ = d
self.val *= 3
import pickle
f = Foo()
f_string = pickle.dumps(f)
f_new = pickle.loads(f_string)
Эти методы используются для управления процессом маринования и удаления объектов с помощью рассола. модуль. Обычно это обрабатывается автоматически, поэтому, если вам не нужно переопределить способ маринования или выделения класса, вам не следует об этом беспокоиться.