[Python-Dev] Pickling of Enums
Guido van Rossum
guido at python.org
Tue Feb 18 20:20:44 CET 2014
I'm confused. AFAICT enums are pickled by value too. What am I missing? Are
we confused about terminology or about behavior? (I'm just guessing that
the pickling happens by value because I don't see the string AF_INET.)
Python 3.4.0rc1+ (default:2ba583191550, Feb 11 2014, 16:05:24)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket, pickle, json, pickletools
0: \x80 PROTO 3
2: c GLOBAL 'socket AddressFamily'
24: q BINPUT 0
26: K BININT1 2
28: \x85 TUPLE1
29: q BINPUT 1
31: R REDUCE
32: q BINPUT 2
34: . STOP
highest protocol among opcodes = 2
On Tue, Feb 18, 2014 at 10:16 AM, Ethan Furman <ethan at stoneleaf.us> wrote:
> On 02/18/2014 10:05 AM, Guido van Rossum wrote:
>> Hm. But there's an implementation that has made it unscathed through
>> several betas and an RC. AFAICT that beta pickles
>> enums by value. And I happen to think that that is the better choice (but
>> I don't have time to explain this gut feeling
>> until after 3.4 has been released).
> This conversation wasn't in the PEP, but as I recall we decided to go with
> value instead of name for json because the receiving end may not be running
> Is having json do it one way and pickle another a problem?
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev