On Wed, Oct 3, 2012 at 1:26 PM, Steven D'Aprano <span dir="ltr"><<a href="mailto:steve+comp.lang.python@pearwood.info" target="_blank">steve+comp.lang.python@pearwood.info</a>></span> wrote:<br><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">C++ namespaces are useful for encapsulating related objects within a<br>
single file, subdividing the global namespace without using classes.<br>
Python has modules, but they come in separate files.<br>
<br>
Using Python 3.3's ChainMap type, and some metaclass trickery, I abuse<br>
the class keyword to (almost) emulate C++ namespaces:<br></blockquote><div><br></div><div>Very interesting.  I like the idea of continuing the namespace meme.  </div><div><br></div><div>My idea of using the builtins (in the prior list thread of "namespaces and modules"), is that if we overhaul the builtins, a unified data model could emerge to incorporate whatever ideas one may have for namespaces (i.e. "enclosures with a name").</div>
<div><br></div><div>My idea was to introduce the compound data type (using a ":" colon to separate two sides), whereby one associates a (*hashable*) "name"  with an object ("meals":{"breakfast","lunch","dinner"}) .  This has the extra advantage of killing two warts in Python with one stone:  {} now is the empty set literal like people are taught, and a set of compounds makes a dictionary (dict now has set operations available), something which, in theory, should simply CPython implementation AND the python environment/API.</div>
<div><br></div><div>"expose name" put the dictionary (or whatever type is decided for the rhs) into the builtin/global namespace.</div><div><br></div><div>I have further thoughts, but that's all I have at the moment....</div>
<div><br></div><div>markj</div><div>gothenburg, nebraska</div></div>