Can you manipulate bits and memory directly using Python? If yes, wouldn't that be a best option to dealing with performance-critical spots than C bindings?
Bit manipulation in Python is possible (if you mean the standard bit operations like AND OR XOR etc.), but you cannot change arbitary memory by design. You can use Cython (http://cython.org/) however, which is a extended dialect of Python which compiles to C.