[Python-Dev] Re: optimizing non-local object access

Guido van Rossum guido@python.org
Thu, 09 Aug 2001 18:03:59 -0400


[Jeremy]
> It would because __dict__ wouldn't be a dictionary; it would be a
> dlict (dictionary-list hybrid).  This is the one compatibility issue
> that has come up.  Code that expects module's to have a real
> dictionary will break -- both in Python where it is probably quite
> rare and at the C level where some API calls require real dicts.  The
> __dict__ object will implement the mapping protocol.  It just won't be
> a dict.

In 2.2, if you don't use __getitem__ for access-by-number, you could
subclass dictionary and add a separate set of APIs to access the
variables by number (and to assign numbers to them in the first
place).  Then it would still behave like a real dictionary enough to
be usable for the PyDict_* C API functions.

--Guido van Rossum (home page: http://www.python.org/~guido/)