diff --git a/pep-0307.txt b/pep-0307.txt index 946046949..68c1c1ebb 100644 --- a/pep-0307.txt +++ b/pep-0307.txt @@ -389,10 +389,10 @@ Case 2: pickling new-style class instances using protocols 0 or 1 that is zero, or an empty sequence or mapping), this state is not pickled and __setstate__ will not be called at all. - Note that this strategy ignores slots. New-style classes that - define slots and don't define __getstate__ in the same class that - defines the slots automatically have a __getstate__ method added - that raises TypeError. + Note that this strategy ignores slots. Instances of new-style + classes that have slots but no __getstate__ method cannot be + pickled by protocols 0 and 1; the code explicitly checks for + this condition. Case 3: pickling new-style class instances using protocol 2 @@ -441,12 +441,6 @@ Case 3: pickling new-style class instances using protocol 2 None and whose second item is a dictionary mapping slot names to slot values described in the previous bullet. - Note that new-style classes that define slots and don't define - __getstate__ in the same class that defines the slots - automatically have a __getstate__ method added that raises - TypeError. Protocol 2 ignores this __getstate__ method - (recognized by the specific text of the error message). - The __setstate__ method The __setstate__ should take one argument; it will be called