[Tutor] constructor
Alan Gauld
alan.gauld at btinternet.com
Mon Apr 5 00:46:50 CEST 2010
"Shurui Liu (Aaron Liu)" <shurui91 at gmail.com> wrote
> Sorry, let me specify. I think comptuter will print out those two
> sentences like this:
>
> A new critter has been born!
> Hi. I'm an instance of class Critter.
> A new critter has been born!
> Hi. I'm an instance of class Critter.
> class Critter(object):
> """A virtual pet"""
> def __init__(self):
> print "A new critter has been born!"
Here you are calling print inside the constructor (actually the
initialiser)
method which gets called when you create a new object
> def talk(self):
> print "\nHi. I'm an instance of class Critter."
Here you are calling print inside a method that only gets executed
when explicitly called from the created object
> crit1 = Critter()
> crit2 = Critter()
Here you create two objects so the constructor method will be executed
twice.
So you get the message
A new critter has been born!"
twice.
> crit1.talk()
> crit2.talk()
Then you call the talk method for each object so you get
Hi. I'm an instance of class Critter.
twice.
The __init__() method is nothing too special. It gets called
automatically when you create the object is all. You can think
of
crit = Critter()
as effectively being a call to Critter.__init__()
There is a little bit more to it that that but most of the time its
close enough.
You can read an alternative explanation in the OOP topic
of my tutorial...
--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/
More information about the Tutor
mailing list