Add a comment about how some built-in types should grow a

__getnewargs__ method.
This commit is contained in:
Guido van Rossum 2003-01-28 22:31:25 +00:00
parent b26a97aa50
commit 4e2491dbb1

View file

@ -368,13 +368,15 @@ class Pickler:
def save_newobj(self, obj):
# Save a new-style class instance, using protocol 2.
# XXX Much of this is still experimental.
# XXX This is still experimental.
assert self.proto >= 2 # This only works for protocol 2
t = type(obj)
getnewargs = getattr(obj, "__getnewargs__", None)
if getnewargs:
args = getnewargs() # This bette not reference obj
else:
# XXX These types should each grow a __getnewargs__
# implementation so this special-casing is unnecessary.
for cls in int, long, float, complex, str, UnicodeType, tuple:
if cls and isinstance(obj, cls):
args = (cls(obj),)