Wayne Sutton wrote: > OK, I'm a newbie... > I'm trying to learn Python & have had fun with it so far. But I'm having > trouble following the many code examples with the object "self." Can > someone explain this usage in plain english? > > Thanks, > Wayne
I'll give it a try.. When you have a class definition: class Person(object): def set_name(self, name): self.name = name The method "set_name", has no idea what your class instance is going to called at this point. But it will need to know when it's called. So for now "self" is just a argument waiting to be assigned a reference later just like any other function argument. You can actually call it anything you want but "self" is sort of a tradition. leader = Person() This creates an instance of your class and stores a reference to it in the name "leader". Now that that you have an instance with a name. You can use your class method to do something. leader.set_name("John") When you call a method of an instance, Python translates it to... leader.set_name(leader, "John") So "self" in your method definition gets assigned a reference to "leader". "self" can then be used to access the other values and methods stored in your class instance. Or in this case store a value in your class instance. Basically "self" becomes a reference to the class instance it is in. self.name = name is the same as ... leader.name = name But we didn't know it was going to be called "leader" when we wrote the class. So self is a convienent place holder. I hope this helped. Cheers, Ron -- http://mail.python.org/mailman/listinfo/python-list