On 10/21/2010 08:09 PM, Brendan wrote:
Two modules:
x.py:
class x(object):
     pass

y.py:
from x import x
class y(x):
     pass

Now from the python command line:
import y
dir(y)
['__builtins__', '__doc__', '__file__', '__name__', '__package__',
'x', 'y']

I do not understand why class 'x' shows up here.

Because that's how `import` behaves. It imports *every* member of the module into the importing module's global namespace (except for attributes that start with an underscore).

You can specify the attributes that shall be import with a star-import by settings __all__. In your case, you would add `__all__ = ['y']` to y.py.

Jonas
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to