From: Ethan Furman on 17 May 2010 18:01 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','f1(a)flinstone.gv','active','exemplary') Hope this helps. ~Ethan~
First
|
Prev
|
Pages: 1 2 Prev: Python3 buffer extra byte?? Next: wxPython: How to get letter colour from TextCtrl |