Alex Hall wrote:
Hi all,
I am a bit confused about classes. What do you pass a class, since all
the actual information is passed to __init__? For example, say you
have a dog class. The dog object has a name, a size, and a color. I
believe you would say this:

class dog():
 def __init__(self, name, size, color):
  self.name=name
  self.size=size
  self.color=color

Here you have defined a dog class (you have not called it, yet).


What, then, gets passed to the class constructor?
class dog(whatGoesHere?):

whatGoesHere = any parent classes (the constructor is *not* being called yet)

parent classes can be used when you want what they have, but need to either add more, or change some, of the methods/attributes that the parent has.

Sometimes I see things passed to this. For example, if you create a
class for a wxPython frame, you will say:
class myapp(wx.App):

wx.App is not being passed, per se, rather Python is being told that myapp is based on wx.App, and will have all the methods/attributes that wx.App has, plus whatever else follows.

So far, all that has been done is to _define_ classes.

class contact():
 def __init__(self, name, email, status, service):
  self.name=name
  self.email=email
  self.status=status
  self.service=service

Here, I do not pass anything to the class, only to __init__. What is going on?

You have defined a class -- nothing more, nothing less.

When you actually call the class is when any necessary items are passed to the constructor (__init__):

a_dog = dog('Ralph', 'big', RED)

this_app = myapp()

fred = contact('Fred Flinstone','f...@flinstone.gv','active','exemplary')

Hope this helps.

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

Reply via email to