If you're going to learn another language, learn something from a different programming paradigm, or one which is lower level.
Learning Ruby would be an absolute waste of time.
This isn't a hip or cool answer, but I'd suggest learning Java. It's one of the most popular languages by a large margin, and knowing it will help you speak the object-oriented lingua franca. If you only write Python, you're probably mostly writing procedural code. Learning OO is a good idea.
Python has all of the constituent parts of an OO language, save explicit types, but it is never written in an OO style.
Using classes != OO.
Generally, Python programmers treat objects as structs with associated methods, basically the Go model. Python programmers rarely encapsulate at all. At best, they use a bunch of accessors (which is not itself OO). Implementation details are rarely hidden.
That's because dynamically-typed languages, the interpreter, and the Python culture, lend themselves more to exploratory programming, rather than a UML-design, with objects that relate to real-world entities, that are implemented after careful planning.
If you can show me a Python program where objects are really encapsulated, and aren't chock-full of accessors, I'll stand happily corrected.
Learning Ruby would be an absolute waste of time.
This isn't a hip or cool answer, but I'd suggest learning Java. It's one of the most popular languages by a large margin, and knowing it will help you speak the object-oriented lingua franca. If you only write Python, you're probably mostly writing procedural code. Learning OO is a good idea.