specifying constants for a function (WAS: generator expressions: performance anomaly?)

Steven Bethard steven.bethard at gmail.com
Sun Jan 23 21:08:11 CET 2005


Nick Coghlan wrote:
> Steven Bethard wrote:
> 
>> I wrote:
>>  > If you really want locals that don't contribute to arguments, I'd be
>>  > much happier with something like a decorator, e.g.[1]:
>>  >
>>  > @with_consts(i=1, deftime=time.ctime())
>>  > def foo(x, y=123, *args, **kw):
>>  >    return x*y, kw.get('which_time')=='now' and time.ctime() or deftime
>>  >
>>  > Then you don't have to mix parameter declarations with locals
>>  > definitions.
>>  >
>>  > Steve
>>  >
>>  > [1] I have no idea how implementable such a decorator would be.  I'd
>>  > just like to see function constants declared separate from arguments
>>  > since they mean such different things.
>>
>> I played around with this, and I think it's basically implementable:
> 
> 
> Raymond's constant binding decorator is probably a good model for how to 
> do it:
> http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/277940

Yeah, I thought about this recipe, but opcodes always scare me too much. ;)

Steve



More information about the Python-list mailing list