__dict__ of object, Was: Regular Expression IGNORECASE differentfor findall and split?

Fredrik Lundh fredrik at pythonware.com
Tue Sep 6 23:57:07 CEST 2005

Chris <c at cdot.de> wrote:

> but more of a basic question following, I was doing the following before:
> method = 'split' # came from somewhere else of course
> result = re.__dict__[method].(REGEX, TXT)
> precompiling the regex
> r = compile(REGEX)
> does give an regex object which has the needed methods
> print dir(r)
> ['__copy__', '__deepcopy__', 'findall', 'finditer', 'match', 'scanner',
> 'search', 'split', 'sub', 'subn']
> but how do I evaluate them without explicitly calling them?
> result = r.__???MAGIC???__[method](TXT)
> obviously I am not a Python pro ;)

I really don't understand why you think you have to write
your RE code that way, but the mechanism you're looking
for is getattr:

    result = getattr(r, method)(TXT)


More information about the Python-list mailing list