[Python-3000] PEP for Metaclasses in Python 3000 (original) (raw)

Phillip J. Eby pje at telecommunity.com
Sat Mar 10 21:22:30 CET 2007


At 08:45 PM 3/10/2007 +1300, Greg Ewing wrote:

Jack Diederich wrote:

> I am a very big fan of ordered dicts in classes. One possibility is that > suites in classes always store their order in a special dict that keeps a > side list of key order. A final invisible class decorator around > every class would then toss out the order and leave only a regular dict. Is it really necessary to toss out the order at all? I'm skeptical that class dictionaries are either created or modified anywhere near often enough for there to be any noticeable performance penalty here. In any case, I've thought of a way to reduce the performance penalty to near-zero. Consider that the compiler knows all the names that will be assigned in the class dict and what order they are in. So all it needs to do is compile...

This wouldn't help any of the other use cases for custom metaclass dictionaries. I.e., the ability to use a custom dictionary type is a feature, not a bug. (Note that using a custom dictionary means you can override its getitem as well as its setitem, thereby influencing the execution of the class body, defining special names, etc.)



More information about the Python-3000 mailing list