• Guido van Rossum's avatar
    Jim Fulton writes: · d1f4984a
    Guido van Rossum yazdı
    The attached patch adds the following behavior to the handling
    of REDUCE codes:
    
    - A user-defined type may have a __reduce__ method that returns
      a string rather than a tuple, in which case the object is
      saved as a global object with a name given by the string returned
      by reduce.
    
      This was a feature added to cPickle a long time ago.
    
    
    - User-defined types can now support unpickling without
      executing a constructor.
    
      The second value returned from '__reduce__' can now be None,
      rather than an argument tuple.  On unpickling, if the
      second value returned from '__reduce__' during pickling was
      None, then rather than calling the first value returned from
      '__reduce__', directly, the '__basicnew__' method of the
      first value returned from '__reduce__' is called without
      arguments.
    
    I also got rid of a few of Chris' extra ()s, which he used
    to make python ifs look like C ifs.
    d1f4984a
pickle.py 20.1 KB