Depending on what you're' doing, it might be more usefulll to derive pygame.sprite.Sprite() [ which is a Surface, and Rect ] But also allows you to use sprite groups. ]
You can think of them to be similar to shared pointers, in that if the sprite is in any group, it stays alive, since there is a reference to it.