]> granicus.if.org Git - python/commitdiff
#5370: doc update about unpickling objects with custom __getattr__ etc. methods.
authorGeorg Brandl <georg@python.org>
Sun, 5 Apr 2009 14:40:06 +0000 (14:40 +0000)
committerGeorg Brandl <georg@python.org>
Sun, 5 Apr 2009 14:40:06 +0000 (14:40 +0000)
Doc/library/pickle.rst

index a99dc862f4da3a5783a4e7781886e1e81e6485f0..f6b7ae42b303a4838caf957b4761bafd5723de10 100644 (file)
@@ -458,6 +458,15 @@ Pickling and unpickling normal class instances
       For :term:`new-style class`\es, if :meth:`__getstate__` returns a false
       value, the :meth:`__setstate__` method will not be called.
 
+.. note::
+
+   At unpickling time, some methods like :meth:`__getattr__`,
+   :meth:`__getattribute__`, or :meth:`__setattr__` may be called upon the
+   instance.  In case those methods rely on some internal invariant being
+   true, the type should implement either :meth:`__getinitargs__` or
+   :meth:`__getnewargs__` to establish such an invariant; otherwise, neither
+   :meth:`__new__` nor :meth:`__init__` will be called.
+
 
 Pickling and unpickling extension types
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^