embarrassing class question
robert.kern at gmail.com
Thu Oct 21 21:04:47 CEST 2010
On 10/21/10 1:53 PM, Brendan wrote:
> On Oct 21, 3:47 pm, Carl Banks<pavlovevide... at gmail.com> wrote:
>> On Oct 21, 11:09 am, Brendan<brendandetra... at yahoo.com> wrote:
>>> Two modules:
>>> class x(object):
>>> from x import x
>>> class y(x):
>>> Now from the python command line:>>> import 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
"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
More information about the Python-list