[Zope-dev] Re: [Zope-Checkins] SVN: Zope/trunk/lib/python/OFS/Traversable.py using startswith()

Andreas Jung lists at andreas-jung.com
Tue Feb 28 15:47:52 EST 2006



--On 28. Februar 2006 21:41:24 +0100 Philipp von Weitershausen 
<philipp at weitershausen.de> wrote:

> Lennart Regebro wrote:
>>> -                if name[0] == '_':
>>> +                if name.startswith('_'):
>>
>> Just a question: Is this only a matter of stylistic changes, or is
>> there some, like, speedup involved?
>
> In general, using str.startswith and str.endswith is a failsafe because
> ''.startswith('_') simply returns False, ''[0] == '_' raises a KeyError.
> So, if you really know that your string has at least the length you're
> trying to test it against, using the index/slice notation is ok. In all
> other cases I would prefer str.startswith and str.endswith.
>

But Lennart is right that in this case name should in general never be an
empty string and in addition  startswith() is in this case 100% slower
than using slicing.

-aj


-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 186 bytes
Desc: not available
Url : http://mail.zope.org/pipermail/zope-dev/attachments/20060228/b3ddf05b/attachment.bin


More information about the Zope-Dev mailing list