On Thu, Oct 21, 2010 at 11:53 AM, Brendan <brendandetra...@yahoo.com> 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?

Limiting yourself to one class per module is neither mandatory nor
common in Python. Python is not Java.

Cheers,
Chris
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to