Message 181744 - Python tracker
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".