By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
439,985 Members | 1,574 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 439,985 IT Pros & Developers. It's quick & easy.

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

P: n/a
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

Sep 18 '05 #1
Share this question for a faster answer!
Share on Google+

This discussion thread is closed

Replies have been disabled for this discussion.