[Python-ideas] Namespaces and modules [was Deprecate the round builtin]
steve at pearwood.info
Mon Oct 1 08:05:51 CEST 2012
On Sun, Sep 30, 2012 at 11:46:05PM -0500, Mark Adam wrote:
> On Thu, Sep 27, 2012 at 5:23 AM, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:
> > Presumably they would be implemented as module objects,
> > created automatically at interpreter startup instead of
> > being loaded from a file.
> > In which case "built-in module" might be a better term
> > for them. And their names should start with lower case.
> That's cool. YES, lowercase.
I'm not sure why "built-in module" is a better term for something which
I gather is a separate namespace within a module, so you can have:
module.spam # global namespace
module.sub.spam # sub is a "submodule" or "namespace"
but sub has no independent existence as a file on disk. If that's what
we're discussing, I don't think that "built-in module" is a good name,
since it isn't *built-in*.
We already have something called "built-in modules" -- modules like sys
which actually are built-in to the Python virtual machine.
> > Also you wouldn't need new syntax to get names out of
> > them, just the existing import machinery:
> > from numbers import *
> Well, to me there must be a clear partitioning.
> The stuff in the builtin [module] sets the tone for the whole
> interpreter environment (and I think python culture itself). If one
> were to use the standard import language (like in your example), it
> confuses one "semantically" -- because you're suggesting to treat a it
> (i.e. a whole class of "things") as something optional.
> Does that make sense?
Not to me, I'm afraid.
More information about the Python-ideas