class Robot:
    """represents a robot with a name"""
    
    # A class variable, counting the number of robots
    population = 0
    
    def __init__(self, name):
        """Initializes the data"""
        
        self.name = name
        print "(Initializing {})".format(self.name)
        
        # When this person is created, the robot
        # adds to the population
        Robot.population += 1
        
    def die(self):
        """I am dying"""
        
        print "{} is getting destroyed!".format(self.name)
        
        Robot.population -= 1
        
        if Robot.population == 0:
            print "{} was the last one.".format(self.name)
        else:
            print "There are still {:d} robot(s) working".format(Robot.population)
            
    def say_hi(self):
        """Greeting by the robot."""
        
        print "Greetings! My master call me {}.".format(self.name)
        
    @classmethod
    def how_many(cls):
        """prints the current population"""
        
        print "We have {:d} robot(s).".format(cls.population)
        
droid1 = Robot("R2-D2")
droid1.say_hi()
Robot.how_many()

droid2 = Robot("C-3PO")
droid2.say_hi()
Robot.how_many()

print "\nRobots can do some work here.\n"
print "\nRobots have finished their work. Let's destroy them."

droid1.die()
droid2.die()

Robot.how_many()