Bug in handling of single underscore identifiers?

Tom Blackwell tom.blackwell at sympatico.ca
Tue Jan 4 17:55:15 EST 2005


Today I installed the 'mechanoid' package from sourceforge, but the
self-test failed. On looking into it, I noticed odd behaviour in the
handling of single underscore module names.  Importing into the
current namespace with 'from' seems to work, but accessing members of
the imported module only works if the imported name is qualified by
the  containing module name.

For example:
>>> from mechanoid import _mechanoid_Common
>>> from _mechanoid_Common import Common
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ImportError: No module named _mechanoid_Common
>>> from mechanoid._mechanoid_Common import Common
**succeeds**
>>> _mechanoid_Common
<module 'mechanoid._mechanoid_Common' from
'mechanoid\_mechanoid_Common.pyc'>

Is this a bug or a feature? The language reference section 2.3.2
'Reserved classes of identifiers' indicates that identifiers starting
with a single underscore are not imported by "from module import *".
However I can't find any indication that "from module import _name"
should work this way.

Thanks

Tom





More information about the Python-list mailing list