Alex Hall wrote:
Okay, that makes sense. So by calling submarine(craft) I am bringing
in all of craft's attribs (subclassing)? Or does calling craft's
__init__ method do that instead? Is there an advantage to doing it
this way, rather than just making separate classes for everything,
except for my own sense of organization; speed, memory usage, less
coding? Thanks.

<snip>
You put your response at the wrong end of the message. It should *follow* whatever you're quoting. So in your case, I'm forced to delete everything just to make the order correct.

You don't call Submarine(Craft), as it's not a function. That's a class definition. You instantiate a Submarine by something like:

sub = Submarine(arg1, arg2, arg3)

And those three arguments are then passed to the __init__() method of Submarine. It may choose to call the __init__() method of Craft, in the method.

There are lots of advantages of using inheritance. First, any common code only has to be entered once, so you'll only have to fix it once when you find mistakes, or decide to redesign. Second, it's easier to read - very important. It may take less memory, but probably not. And it's not likely to have any speed impact.

Craft instances don't have any instance data attributes if nobody assigns them. And that's normally the job of __init__(). So naturally, you need to call it from the Submarine class.

Incidentally, convention is to capitalize class names.

DaveA

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

Reply via email to