"Guyon Morée wrote: > I can provide re.sub with a callable, but this will only be called > with a match object, it's not possible to give it any of the other > params. > > The solution I came up with to tackle this is with some funny globals, > which doesnt feel 'right': > > -------------------------------------------------------------------------------------- > import re > > def test(data,pre,post): > p = re.compile("([0-9])") > global _pre, _post > _pre = pre > _post = post > > def repl(m): > global _pre, _post > return _pre + m.group(1) + _post > > print p.sub(repl, data)
contemporary python (nested scopes): def test(data,pre,post): p = re.compile("([0-9])") def repl(m): return pre + m.group(1) + post print p.sub(repl, data) old python (object binding): def test(data,pre,post): p = re.compile("([0-9])") def repl(m, pre=pre, post=post): return pre + m.group(1) + post print p.sub(repl, data) </F>
-- http://mail.python.org/mailman/listinfo/python-list