On Tue, 30 Oct 2007 15:25:54 GMT, Neil Cerutti <[EMAIL PROTECTED]> wrote: >On 2007-10-30, Eduardo O. Padoan <[EMAIL PROTECTED]> wrote: >> This is a FAQ: >> http://effbot.org/pyfaq/why-does-python-use-methods-for-some-functionality-e-g-list-index-but-functions-for-other-e-g-len-list.htm > >Holy Airy Persiflage Batman! > >Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on >win32 >Type "help", "copyright", "credits" or "license" for more information. >>>> import timeit >>>> timeit.Timer('len(seq)', 'seq = range(100)').timeit() >0.20332271187463391 >>>> timeit.Timer('seq.__len__()', 'seq = range(100)').timeit() >0.48545737364457864 >
Not sure what you're trying to demonstrate. Here's another pointless transcript, though: [EMAIL PROTECTED]:~$ python -m timeit -s ' seq = range(100) ' 'len(seq)' 1000000 loops, best of 3: 0.211 usec per loop [EMAIL PROTECTED]:~$ python -m timeit -s ' seq = range(100) ' 'seq.__len__()' 1000000 loops, best of 3: 0.317 usec per loop [EMAIL PROTECTED]:~$ python -m timeit -s ' class X(object): def __len__(self): return 100 seq = X() ' 'seq.__len__()' 1000000 loops, best of 3: 0.427 usec per loop [EMAIL PROTECTED]:~$ python -m timeit -s ' class X(object): def __len__(self): return 100 seq = X() ' 'len(seq)' 1000000 loops, best of 3: 0.701 usec per loop [EMAIL PROTECTED]:~$ I guess we've learned that sometimes something is faster than something else, and other times the contrary. Jean-Paul -- http://mail.python.org/mailman/listinfo/python-list