mirror of
https://github.com/python/cpython.git
synced 2026-02-13 19:04:37 +00:00
gh-143928: Remove outdated comparison between pickle and marshal regarding recursion (#144025)
This commit is contained in:
parent
8f459255eb
commit
923d9d2ac2
1 changed files with 0 additions and 13 deletions
|
|
@ -56,19 +56,6 @@ files.
|
|||
|
||||
The :mod:`pickle` module differs from :mod:`marshal` in several significant ways:
|
||||
|
||||
* The :mod:`pickle` module keeps track of the objects it has already serialized,
|
||||
so that later references to the same object won't be serialized again.
|
||||
:mod:`marshal` doesn't do this.
|
||||
|
||||
This has implications both for recursive objects and object sharing. Recursive
|
||||
objects are objects that contain references to themselves. These are not
|
||||
handled by marshal, and in fact, attempting to marshal recursive objects will
|
||||
crash your Python interpreter. Object sharing happens when there are multiple
|
||||
references to the same object in different places in the object hierarchy being
|
||||
serialized. :mod:`pickle` stores such objects only once, and ensures that all
|
||||
other references point to the master copy. Shared objects remain shared, which
|
||||
can be very important for mutable objects.
|
||||
|
||||
* :mod:`marshal` cannot be used to serialize user-defined classes and their
|
||||
instances. :mod:`pickle` can save and restore class instances transparently,
|
||||
however the class definition must be importable and live in the same module as
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue