Hi to all! I am new to python, and I encountered a weird problem. Here is my code
##########>8#################### #!/usr/bin/python # Filename: objvar.py class Person: '''Represents a person.''' population = 0 #sex = 'F' #age = 22 # It is vague here: is this variable going to be a class, or object, variable def __init__(self, name, sex): '''Initializes the person's data.''' self.name = name self.sex = sex print '(Initializing %s )' % self.name # When this person is created, he/she # adds to the population Person.population += 1 def __del__(self): '''I am dying.''' 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. Really, that's all it does.''' self.age = 25 print 'Hi, my name is %s, and I am %s, and I am age %d ' % (self.name, self.sex, self.age) def howMany(self): '''Prints the current population.''' if Person.population == 1: print 'I am the only person here.' else: print 'We have %d persons here.' % Person.population swaroop = Person('Swaroop', 'M') swaroop.sayHi() swaroop.howMany() kalam = Person('Abdul Kalam', 'M') kalam.sayHi() kalam.howMany() cathy = Person('Catherine', 'F') cathy.sayHi() cathy.howMany() swaroop.sayHi() swaroop.howMany() ############# 8< ######################### When I run this script, I got the following exception: Exception exceptions.AttributeError: "'NoneType' object has no attribute 'population'" in <bound method Person.__del__ of <__main__.Person instance at 0xb7d8ac6c>> ignored To to newcomer like me, this message doesn't make much sense. What seems weird to me is that, if I change the variable cathy to something else, like cath, or even cat, then the script will finish gracefully. Why "cathy" is not liked?!! Some of you may have recognized that the code is derived from a sample code in Swaroop's "A byte of python". My python is of version 2.5.1, on Ubuntu. -- http://mail.python.org/mailman/listinfo/python-list