Hi everybody, So I'm new to python and have questions about the following code:
class Robot: '''Represents a Robot with a name. Deletes and makes Robots for testing perpuses''' #a var for counting the number of Robots population = 0 def __init__(self, name): '''initializes the data''' self.name=name print ('initializing {0}'.format(self.name)) Robot.population+=1 def __del__(self): '''I'm dying''' print ('{0} is being destroyed!'.format(self.name)) Robot.population-=1 if Robot.population==0: print ("{0} was the last one".format(self.name)) else: print ("there are still {0:d} Robots working".format(Robot.population)) def Sayhi (self): '''This is just a hi thing. Just to say hi<<< to practice convention of docstrings''' print ('hello, khalid calls me {0}'.format(self.name)) def howMany(): '''prints how many''' print ('we have {0:d} Robots'.format (Robot.population)) howMany= staticmethod(howMany) droid1 = Robot('D23') droid1.Sayhi() Robot.howMany() droid2 = Robot('F0009') droid2.Sayhi() Robot.howMany() print ("\nRobots can do some work here\n") print ("Robots have finished their work. So let's destroy them") del droid1 del droid2 Robot.howMany() 1- In the class definition above, I don't get the "self.name=name". I understand that the self is supposed to refer to the actual object, but since it is an initialization method, there is no way to enter a name in place of the arguments. 2- in the final few lines where I assign an object to the class, I notice that a parameter was entered in the class name, "Robot(D23)", although when defining the class I didn't put any arguments for it. 3- what is the difference between all the underscore, underscore attributes like:__class__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__ and the rest of the normal methods for a class.? I know, lots of questions, but what can i say... I am new!! so can you guy/gals help? thanks a million. khalid
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor