title: What are user-controlled namespaces?
body: <p>Referring to <a href="http://legacy.python.org/dev/peps/pep-0008/" rel="nofollow">Python PEP8</a>:</p>
  
  <blockquote>
    <p><code>__double_leading_and_trailing_underscore__</code> : "magic" objects or attributes that live in user-controlled namespaces. E.g. <code>__init__</code>,
    <code>__import__</code> or <code>__file__</code>. Never invent such names; only use them as documented.</p>
  </blockquote>
  
  <p>I browsed through many questions related to the use of underscores in Python and I think I have understood the answers to most of them (things like <code>private</code> attributes, <code>name mangling</code>, etc.). I think I have also understood the aforementioned use of double leading and trailing underscores. I guess it's for protecting functions like <code>__init__</code> which are similar to constructors in languages like C++ and Java. </p>
  
  <p>But then shouldn't it be called <code>community-controlled namespaces</code> (by community I mean the Python community)? What does the author mean when he says <code>user-controlled namespaces</code>? In fact it seems the intent is the opposite: users should not (normally) trifle with these namespaces.</p>