This would be one of the approaches to use if you wanted to squeeze the last pieces of performance out of this class. I would recommend using Cython for this though.
The problem with both of these approaches is that, well, use this too often, however, and you suddenly realise you are not really coding in Python anymore.
Also, correct me if I'm wrong, overuse of tricks like these is one of the key reasons why we cannot have nice things like PyPy for all modules.
There is a difference between C/C++, but for the purposes of this article it does not matter -- the point I am trying to make is that you would not use a hash table in any of them, would you?
The exact times are kind of pointless indeed, all what matters are the ratios. C benchmark would probably be as well. What I was trying to show was that your runtime comparisons are not necessarily comparing the same things.
OP, how does this compare to scikits.bootstrap [1] feature/performance-wise?
[1] https://scikits.appspot.com/bootstrap