Overriding a method at the instance level on a subclass of a builtin type

Zac Burns zac256 at gmail.com
Wed Dec 3 01:58:36 CET 2008

Sorry for the long subject.

I'm trying to create a subclass dictionary that runs extra init code
on the first __getitem__ call. However, the performance of __getitem__
is quite important - so I'm trying in the subclassed __getitem__
method to first run some code and then patch in the original dict
method for the instance to avoid even the check to see if the init
code has been run. Various recipes using instancemethod and the like
have failed me.

Curiously if __slots__ is not specified no error occurs when setting
self.__getitem__ but the function is not overriden. If __slots__ is
['__getitem__'] however it complains that __getitem__ is read only. I
do not understand that behavior.

Zachary Burns
Aim - Zac256FL
Production Engineer (Digital Overlord)
Zindagi Games

More information about the Python-list mailing list