ask at me.com
Thu Aug 21 18:53:04 CEST 2003
I'm trying to subclass ConfigParser so I can use a custom __read method (the
custom format doesn't conform to RFC 822) when needed. Needless to say, it's
not working as expected.
In the following code, I bind __read_ini to __read and override __read so it
can choose between __read_ini and __read_custom. But it seems that
__read_custom never gets called when I expect it to aways be called. I have
a feeling this has to do with me not entirely understanding magic atributes
and name mangling. Anyone have ideas?
from ConfigParser import ConfigParser
def __init__(self, defaults=None):
#Replace the normal __read with my custom __read
#while keeping the normal one around if I need it
self.__read_ini = ConfigParser._ConfigParser__read
ConfigParser._ConfigParser__read = self.__read
def __read(self, fp, fpname):
#Eventually this will decide between __read_custom
#and __read_ini, etc.
def __read_custom(self, fp, fpname):
print "__read_custom" #This never gets printed.
cp = CustomConfigParser()
More information about the Python-list