Better hide it from the kids - about name-mangling
In Python there is no real privacy; you write a single underline in front of a name so that a programmer using the class knows: 'I'm not supposed to touch this.' Double underscores at the beginning on the other side actually do something: They change the way you can access this value. This is supposed to prevent name clashes between base classes and inheriting classes. This is really vague in my head. I can see that we should prevent name clashes, but I can't imagine how they would occur in this case. Do you guys know a few easy real life examples where and how that __ would do its job, how to actually apply it with meaning?