The problem is that your programming is styled by the language you choose. If you decide to go down the route of python then the curse of consenting adults will paint the way you believe object-oriented programming should be done. Likewise if you select something like C++ or Java, then the curse of privacy will paint the way you think about object-oriented programming.
The curse of privacy dictates that the existence of a public method will act as documentation for an object. methods only exists for the purpose of Performing operations on that objects type. This will make you think a lot more about how objects systems provide secure and well dictated data flow. Your objects will be authored to respect these ideas.
The curse of consenting adults dictates that human readable code trumps control flow. The idea of inheriting from a dictionary in Python to Define your own class object makes for extremely powerful objects that are immediately designed to interface with the Python language. There however may be operations that can be applied to dictionaries that you may not want applied to your objects.
If you really want to understand object-oriented programming, then you should use both. You should find as many programming languages as possible and explore how their idioms paint the color of your code.
I expect this isn't a preferred answer, but the real message is if you pick one and learn it, don't stop there. It will take you time to become comfortable enough to Warrant breaking into another language.
That all being said, python and ruby are easier as a programming languages (in general) than many Alternatives. So if you have to learn programming at the same time as object-oriented programming they aren't bad choices.