[Python-Dev] PEP 487: Simpler customization of class creation (original) (raw)
INADA Naoki songofacandy at gmail.com
Tue Jun 21 19:09:09 EDT 2016
- Previous message (by thread): [Python-Dev] PEP 487: Simpler customization of class creation
- Next message (by thread): [Python-Dev] PEP 487: Simpler customization of class creation
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Wed, Jun 22, 2016 at 2:50 AM, Raymond Hettinger <raymond.hettinger at gmail.com> wrote:
On Jun 21, 2016, at 10:18 AM, Guido van Rossum <guido at python.org> wrote:
Judging from Inada's message there seems to be some confusion about how well the compact dict preserves order (personally I think if it doesn't guarantee order after deletions it's pretty useless). Inada should follow PyPy's implementation of the compact dict which does preserve order after deletions (see below).
I follow it, for most cases.
When my compact dict doesn't preserve order is using PEP 412 Key sharing dict.
class A: ... ... ... a = A() b = A() # a and b shares same keys, and have each values a.a = 1 a.b = 2 # The order in shared key is (a, b) b.b = 3 b.a = 4 a.dict.items() dict_items([('a', 1), ('b', 2)]) b.dict.items() dict_items([('a', 4), ('b', 3)])
It's possible to split keys when the insertion order is not strictly same. But it decrease efficiency of key sharing dict.
If key sharing dict is effective only such a very strict cases, I feel slots can be used for it.
- Previous message (by thread): [Python-Dev] PEP 487: Simpler customization of class creation
- Next message (by thread): [Python-Dev] PEP 487: Simpler customization of class creation
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]