Modules vs name spaces (Was: Global namespace)
Harald Hanche-Olsen
hanche at math.ntnu.no
Thu Oct 30 16:35:38 EST 2003
More information about the Python-list mailing list
Thu Oct 30 16:35:38 EST 2003
- Previous message (by thread): Modules vs name spaces (Was: Global namespace)
- Next message (by thread): Modules vs name spaces (Was: Global namespace)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
+ gat at jpl.nasa.gov (Erann Gat): | In article <pco7k2ndcpw.fsf_-_ at thoth.math.ntnu.no>, Harald Hanche-Olsen | <hanche at math.ntnu.no> wrote: | | > + j-anthony at rcn.com (Jon S. Anthony): | > | > | There's a difference between modules and name spaces, though modules | > | in many languages also serve as name spaces. | > [...] | > So, can anyone either explain the difference, or point to a resource | > (preferably on the web) that explains it? | | Packages map strings onto symbols (identifier objects). Agreed. | Modules map symbols/identifiers onto values. Okay. | Packages work at read/parse time. Yep. | Modules work at compile time or run time depending on the module system. | | Common Lisp has a package system but no module system (but it's possible | to add one -- see e.g. http://www.flownet.com/gat/locales.pdf). Ah. I had read that one before, but never realized that it describes a module system. That gives me some idea what it's all about. Thanks. | Python has a module system that works at run-time, but no package system. | | Does that help? Now I am getting a bit confused once more, since python doesn't have symbols, and so the distinction between modules and packages gets blurred (in my mind at least): A python modules maps strings directly to values without symbols ever entering the discussion. But the read-time vs run-time (or compile-time) distinction makes more sense to me. If a python function references foo.bar then by changing the value of foo I can make the function refer to a different foo.bar, but if a Common Lisp function references foo:bar, then messing around with the FOO package is never going to change the meaning of that reference. I guess what I am saying is that, while packages without symbols don't make sense, modules don't require them. But then, neither did you say they do, now that I read what you said over again. -- * Harald Hanche-Olsen <URL:http://www.math.ntnu.no/~hanche/> - Debating gives most of us much more psychological satisfaction than thinking does: but it deprives us of whatever chance there is of getting closer to the truth. -- C.P. Snow
- Previous message (by thread): Modules vs name spaces (Was: Global namespace)
- Next message (by thread): Modules vs name spaces (Was: Global namespace)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list