-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Dieter Maurer wrote:
> Tres Seaver wrote at 2005-5-27 08:22 -0400:
>
>>...
>>As a local patch, this isn't too bad (one could even package it as a
>>do-nothing-after-initialization product). However, no redistributed
>>product code should rely on the
[Tim Peters]
>> def lookup1(arg, _marker=object()):
>> return _marker
>> ...
>> _marker = object()
>> def lookup3(arg):
>> return _marker
>> ...
>>lookup1 0.427597
>>lookup3 0.404399
[Dieter Maurer]
> Do you understand why "lookup3" is faster than "lookup1"?
>
> I had the "impression" t
Tim Peters wrote at 2005-5-27 13:49 -0400:
> ...
>def lookup1(arg, _marker=object()):
>return _marker
> ...
>_marker = object()
>def lookup3(arg):
>return _marker
> ...
>lookup1 0.427597
>lookup3 0.404399
Do you understand why "lookup3" is faster than "lookup1"?
I had the "impression" t
Stefan H. Holek wrote at 2005-5-27 10:59 +0100:
>A TALES expression may be prohibitively expensive in any case, no
>matter how simple it is kept. Please make sure to do some comparative
>profiling. Cache keys are recomputed on every call of the script,
>AFAICS. The thought of doing this in re
Paul Winkler wrote at 2005-5-27 11:02 -0400:
> ...
>def safe_hasattr(obj, attr, acquired=True, _marker=[]):
>if not acquired:
>obj = aq_inner(aq_explicit(obj))
This should be "obj = aq_base(obj)".
The "aq_explicit(aq_inner(...))" dance is only necessary in
untrusted code as "aq_base"
Jim Fulton wrote at 2005-5-27 11:49 -0400:
> ...
>I'm sure this was an unintentional non-acceptance. It would be
>a lot easier if Dieter became a contributor and checked this in
>himself.
You know the unqualified indemnification clause concerning
patents it preventing me...
--
Dieter
__
Tres Seaver wrote at 2005-5-27 08:22 -0400:
> ...
>As a local patch, this isn't too bad (one could even package it as a
>do-nothing-after-initialization product). However, no redistributed
>product code should rely on the presence of a patched 'hasattr', but
>should use the 3 argument getattr inst