The lack of private variables is worse than what your example shows, because you can still add a value later that uses the unmangled name. Then things get really fun.
```
class Dog:
def __init__(self, name, age):
self.__name = name
self.__age = age
def name(self):
return self.__name
d = Dog("Fido", 7)
print(d.name())
d.__name = "Rusty"
print(d.name())
print(d.__name)
```
I will note that I come down on the other side. These things and others frustrate me so much with Python that I really dislike working with it. I find writing anything that isn't a script in a scripting language is just a poor choice. Even writing scripts, I find that expressive, typed functional languages, like Scala, are far more productive for me than Python. The code length is roughly equal (sometimes a little shorter, sometimes a little longer). The compiler syntax errors speed my development by helping me find typos faster. And if the thing I'm writing actually does real computations, the runtime being significantly faster helps as well.