Fredrik Lundh wrote: > Chris <[EMAIL PROTECTED]> 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) >
thanks (also to Steven) for the info, that is exactly what i was looking for. reason is that I built a small UI in which the user may choose if he want to do a split, findall (and maybe later others like match or search). So the method name comes in "from the UI". I could of course use if/elif/else blocks but thought getattr should be shorter and easier. I was not really aware of getattr which I was looking for on other occations before... chris -- http://mail.python.org/mailman/listinfo/python-list