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

Fredrik Lundh fredrik at pythonware.com
Tue Sep 6 17:57:07 EDT 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)

</F>






More information about the Python-list mailing list