Can someone explain what I've done wrong...

J

Jason

Hi,

I'm following a tutorial about classes, and have created the following
(well, copied it from the manual buy added my own and wifes names)...

class Person:
population=0

def __init__(self,name):
self.name=name
print '(Initialising %s)' % self.name
Person.population += 1

def __del__(self):
print "%s says bye." % self.name

Person.population -= 1

if Person.population == 0:
print "I am the last one"
else:
print "There are still %d people left." % Person.population

def sayHi(self):
'''Greeting by the person.

That's all it does.'''
print "Hi, my name is %s" % self.name

def howMany(self):
if Person.population==1:
print "I am on the only person here."
else:
print "We have %d persons here." % Person.population

Jason=Person("Jason")
Jason.sayHi()
Jason.howMany()

Sophie=Person("Sophie")
Sophie.sayHi()
Sophie.howMany()

Jason.sayHi()

The code, when run, should produce the following...

Hi, my name is Jason.
I am the only person here.
(Initializing Sophie)
Hi, my name is Sophie.
We have 2 persons here.
Hi, my name is Jason.
We have 2 persons here.
Jason says bye.
There are still 1 people left.
Sophie says bye.
I am the last one.

But what I actually get is...

(Initialising Jason)
Hi, my name is Jason
I am on the only person here.
(Initialising Sophie)
Hi, my name is Sophie
We have 2 persons here.
Hi, my name is Jason
We have 2 persons here.
Jason says bye.
There are still 1 people left.
Sophie says bye.
Exception exceptions.AttributeError: "'NoneType' object has no attribute
'popula
tion'" in <bound method Person.__del__ of <__main__.Person instance at
0x0097B53
0>> ignored

I've looked through the code but can't find anything obvious.

I also want to apologise if this isn't the write newsgroup to post on,
but it's the only one I know of. IF anyone knows a good newsgroup, I'd
appreciate it.

TIA
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,153
Members
46,699
Latest member
AnneRosen

Latest Threads

Top