Alex Hunsley wrote: > The two main versions I've encountered for data pseudo-hiding > (encapsulation) in python are: > > method 1: > > _X - (single underscore) - just cosmetic, a convention to let someone > know that this data should be private. > > > method 2: > > __X - (double underscore) - mangles the name (in a predictable way). > Avoids name pollution.
Method 2 is also (though to a lesser degree) just cosmetic -- it doesn't prevent all name clashes even if you're reasonable enough not to name anything in the _X__xxx pattern. I gave an example of this in an earlier thread on this topic[1]. The basic problem is that double-underscore mangling doesn't include the module name, so two classes in different modules with the same class names can easily mess with each others' "private" attributes. STeVe [1]http://groups.google.com/group/comp.lang.python/msg/f03183a2c01c8ecf?hl=en& -- http://mail.python.org/mailman/listinfo/python-list