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.) $ python3 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 >>> socket.AF_INET <AddressFamily.AF_INET: 2> >>> pickle.dumps(socket.AF_INET) b'\x80\x03csocket\nAddressFamily\nq\x00K\x02\x85q\x01Rq\x02.' >>> json.dumps(socket.AF_INET) '2' >>> pickletools.dis(pickle.dumps(socket.AF_INET)) 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 > Python. > > Is having json do it one way and pickle another a problem? > > -- > ~Ethan~ > -- --Guido van Rossum (python.org/~guido) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20140218/6f377952/attachment.html>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4