I\'m looking through the source of StringIO where it says says some notes:
Python's file handling is implemented entirely in C. This means that it's quite fast (at least in the same order of magnitude as native C code).
The StringIO library, however, is written in Python. The module itself is thus interpreted, with the associated performance penalties.
As you know, there is another module, cStringIO, with a similar interface, which you can use in performance-sensitive code. The reason this isn't subclassable is because it's written in C.