Private data in the C++ and Java OO worlds is so taught so much and emphasized so often that people have started thinking of it as being desirable for its own sake. But the primary motivation for it grew out of the need to maintain compatible interfaces. These languages rely on a great deal of shared information between provides and clients of interfaces in order to work correctly - public/private interfaces are simply a reflection of that requirement (and the fact that your clients still need to see the stuff you declare as private is an example of a leak in that abstraction).
Python doesn't have these problems, so the only use for private information is to warn your clients away from access to certain names. There's no need for compiler enforcement of that, as a convention is just as effective. The remaining arguments are generally outgrowths of "but my code is SECRET", which just isn't true in general, even less true of Python, and not really a healthy attitude anyway. -- http://mail.python.org/mailman/listinfo/python-list