FWIW, I think the current behavior is correct. If a __str__() method exists, it exists; we shouldn't treat an inherited method differently from one defined directly in the class. So I would be very surprised if the inherited __str__() wasn't used.