[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