Chris <[EMAIL PROTECTED]> writes: > 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...
So why is the UI returning strings, instead of code objects of some kind? <mike -- Mike Meyer <[EMAIL PROTECTED]> http://www.mired.org/home/mwm/ Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information. -- http://mail.python.org/mailman/listinfo/python-list