On 10/21/10 1:53 PM, Brendan wrote:
On Oct 21, 3:47 pm, Carl Banks<pavlovevide...@gmail.com>  wrote:
On Oct 21, 11:09 am, Brendan<brendandetra...@yahoo.com>  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 you imported it into the namespace, which is what the import
statement does.  dir() shows you what's in the namesace; therefore it
lists x.  dir() doesn't care, and can't know, if something was defined
in a namespace, or merely imported.

If it bothers you, you can put "del x" after the class y definition,
but I recommend against doing that in general.  If there's a reference
to x inside a function that function will raise an exception if
called, because it expects x to be inside the namespace.

Carl Banks

So it must never make sense to put subclasses in separate modules?

Of course it can make sense to put subclasses in separate modules, just for other reasons.

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

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

Reply via email to