Tieche Bruce A MSgt USMTM/AFD wrote: > I am new to python, > > Could someone explain (in English) how and when to use self? > > I have been reading, and haven't found a good example/explanation > > > Bruce Tieche ([EMAIL PROTECTED])
Hi, Sometimes it's hard to get a simple answer to programming questions as everyone sees different parts of the elephant. ;-) The use of self is needed because methods in class's are shared between all the instances (objects created from class's). Because of this sharing, each method in a class needs a name to receive the specific instance reference which called it. If every instance had it's own copy of all the methods in a class, we might not need 'self', but our programs would become extreme memory hogs. So sharing code is the great benefit of class's. For example... class myclass(object): def foo(self, a, b): self.c = a + b The method foo is defined but not executed until it is called later from an instance. It's located in the class, but may be called from a lot, (thousands or more), different instances made from this class. bar = myclass() # create a single instance (object) # and bind it to the name bar. Then when you do... bar.foo(1,2) # converted to -> myclass(bar, 1, 2) It calls the 'foo' method located in the parent class and pass's a reference to 'bar' as the first argument. 'self' becomes the new name for bar within foo. self.c = a + b # same as -> bar.c = a + b This should be enough to visualize the basic relationship. Hope it helped. Cheers, Ron -- http://mail.python.org/mailman/listinfo/python-list