Separation of concerns
Each class should address a specific concern.
Some languages allow you to define classes in multiple places (Ruby, Rust), and just load the part you need or extend it without subclassing. Python does not (at least not officially/nicely), neither does C++. Multiple inheritance, type dispatch (C++, Julia), or Traits (Rust) can provide similar benefits, though.