18.02.14 19:11, Ethan Furman написав(ла):
There is one more wrinkle to pickling by name (it's actually still there
in pickle by value, just more obvious in pickle by name) -- aliases.  It
seems to me the most common scenario to having a name represent
different values on different systems is when on system A they are
different, but on system B they are the same:

System A:

   class SystemEnum(Enum):
       value1 = 1
       value2 = 2

System B:

   class SystemEnum(Enum):
       value1 = 1
       value2 = 1

If you're on system B there is no way to pickle (by name or value)
value2 such that we get value2 back on system A.  The only way I know of
to make that work would be to dispense with identity comparison, use the
normal == comparison, and have aliases actually be separate objects (we
could still use singletons, but it would be one per name instead of the
current one per value, and it would also be an implementation detail).

Thoughts?

There are aliases and aliases. If there are modern name and deprecated name, then it should be one object referred by different names on all systems. If there are different entities with accidentally equal values, then they should be different objects.

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to