dict对象如何被腌制?

use*_*871 6 python pickle

阅读咸菜文档后,我得到了一个类需要实施的印象__reduce____getstate__得到正确腌制.但是,字典的酸洗工作呢?他们没有任何这些属性:

> dict(a=1).__reduce__()

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/home/daniyar/work/Apr24/<ipython-input-30-bc1cbd43305b> in <module>()
----> 1 dict(a=1).__reduce__()

/usr/lib/python2.6/copy_reg.pyc in _reduce_ex(self, proto)
     68     else:
     69         if base is self.__class__:
---> 70             raise TypeError, "can't pickle %s objects" % base.__name__
     71         state = base(self)
     72     args = (self.__class__, base, state)

TypeError: can't pickle dict objects



> dict(a=1).__getstate__()

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
/home/daniyar/work/Apr24/<ipython-input-31-00932fb40067> in <module>()
----> 1 dict(a=1).__getstate__()

AttributeError: 'dict' object has no attribute '__getstate__'
Run Code Online (Sandbox Code Playgroud)

另外,从dict派生的类是如何被腌制的?

the*_*orn 8

pickle模块"本地"处理许多类型.它本身不处理的类型需要实现"pickle协议".Dicts和简单的子类是本地处理的.