[Python-3000] Metaclasses in Python 3000: Draft 2 (original) (raw)
Jack Diederich jackdied at jackdied.com
Wed Mar 14 18:13:43 CET 2007
- Previous message: [Python-3000] Metaclasses in Python 3000: Draft 2
- Next message: [Python-3000] Metaclasses in Python 3000: Draft 2
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Wed, Mar 14, 2007 at 12:29:09AM -0700, Talin wrote:
# The metaclass class OrderedClass(type):
# The custom dictionary class membertable(dict):
I would move the member_table class out of the OrderedClass namespace so no one gets any funny ideas that it has to be nested.
Alternate Proposals
Another good suggestion was to simply use an ordered dict for all classes, and skip the whole 'custom dict' mechanism. This was based on the observation that most use cases for a custom dict were for the purposes of preserving order information. However, this idea has two drawbacks, first because it means that an ordered dict implementation would have to be added to the set of built-in types in Python, and second because it would impose a slight speed (and complexity) penalty on all class declarations.
FYI, I did a hacky implementation to test speed by making a copy of dictobject.c and storing key names in a PyList on the object. The slowdown for inserting 100k unique keys (/usr/share/dict/words) was 10%. There was no appreciable slowdown for lookup (it uses the normal hash lookup). I didn't implement deletion so I don't know how much it would suffer.
-Jack
- Previous message: [Python-3000] Metaclasses in Python 3000: Draft 2
- Next message: [Python-3000] Metaclasses in Python 3000: Draft 2
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]