Roy Smith wrote: > LOL, and you'll be LOL too when you see the problem :-) > > You can't give the re.I flag to reCompiled.match(). You have to give > it to re.compile(). The second argument to reCompiled.match() is the > position where to start searching. I'm guessing re.I is defined as 2, > which explains the match you got. > > This is actually one of those places where duck typing let us down. > If we had type bondage, re.I would be an instance of RegExFlags, and > reCompiled.match() would have thrown a TypeError when the second > argument wasn't an integer. I'm not saying type bondage is inherently > better than duck typing, just that it has its benefits at times.
Even with duck-typing, we could cut our users a break. Making our flags instances of a distinct class doesn't actually require type bondage. We could define the __or__ method for RegExFlags, but really, or-ing together integer flags is old habit from low-level languages. Really we should pass a set of flags. -- --Bryan -- http://mail.python.org/mailman/listinfo/python-list