re compiled object result caching?

Dan Stromberg - Datallegro dstromberg at datallegro.com
Wed Aug 29 17:54:50 EDT 2007


On Wed, 29 Aug 2007 17:45:36 -0400, Steve Holden wrote:

> Dan wrote:
>> foo_re = re.compile(r"foo(bar)")
>> # . . .
>> if foo_re.search(line):
>>     foo_re.last_result().group(1)
>> 
> If you wanted to implement this I don't really see why a method call is 
> necessary. It would surely only need to be a simple attribute?
> 
> Of course you then introduce the possibility that someone will reference 
> if before using the RE in a search, plus it still requires separate 
> storage if you want the ability to use the same RE for two different 
> matches and compare the match results.

I've long felt that publicly accessible attributes probably should be
syntactic sugared to look like accessor methods, a bit like how __add__
ends up being + - so that if your attribute ever needs to become methods
(say, it started out life as a unidimensional thing, but later needs to
be a flattening of 3 dimensions or something), you won't necessarily need
to change depenent code.

But are methods a lot more expensive in python than referencing other
kinds of attributes?




More information about the Python-list mailing list