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.
Python is a beautiful object oriented language. Very much so.
Java is not different at all, I'd say go for Haskell or similar to get something really truly dif