Serhiy Storchaka added the comment: There are two overheads: an attribute lookup and a function call.
$ ./python -m timeit -s "a = 'hundred'" "'x' in a" 10000000 loops, best of 3: 0.0943 usec per loop $ ./python -m timeit -s "a = 'hundred'" "a.__contains__('x')" 1000000 loops, best of 3: 0.271 usec per loop $ ./python -m timeit -s "a = 'hundred'" "a.__contains__" 10000000 loops, best of 3: 0.135 usec per loop Time of "a.__contains__('x')" is greater than the sum of times of "a.__contains__" and "'x' in a". ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue17170> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com