INADA Naoki added the comment: This issue is caused by dictresize() and _PyObjectDict_SetItem()
1. a.__dict__.pop('a') convert the dict to combined table which has double keysize. 2. a.a = 1 converts the dict to split table again if there are no instances sharing key with class. As I wrote before, pop, popitem, and del should not increase key size. And _PyObjectDict_SetItem shouldn't convert the dict to split-table when the dict doesn't share keys with the class before calling PyDict_SetItem. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue28147> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com