Danny Rice wrote: > > >Here is a Python example: > > > >MyClass: # A new class is defined. > > > > def my_method(self, my_number): # A new method is defined > > # with the parameter "my_number". > > self.my_object = number # A new object is defined. > > > > What is "self" here? A generic parameter or something special? Self == MyClass or whatever class the code happens to fall under. So, self.my_object = number is the same as MyClass.my_object = number It's "self-referring". It is put in as the first parameter passed when the method is declared so that my_method inherits MyClass's objects. But it is not, as I mention below, passed as a parameter by the method call. > Has "my_object" been declared somewhere else? Should number be > my_number? You're right, it is my_number. Me bad. self.my_object = my_number _is_ the declaration of the object. It does not need to be type-defined as with C. In C you might type int my_object = my_number; > >my_intance = MyClass() # An instance is made. > >my_instance.my_method(2) # The method is called. > > Why is only 1 parameter passed? The other parameter, "self", is not passed here because it refers to MyClass, which is not the class of _this_ block of code but the class of my_method. So, confusingly, 1 paramter is passed, but the method lists 2. It really only expects one to be passed though (a number or whatever). > >print my_instance.my_object # This will print "2". > > It seems like you would need something like "print > my_instance.my_method.my_object" in case you had multiple methods > under the class. Remember that self.my_object = my_number is the same as MyClass.my_object = my_number Therefore, my_object belongs "under" MyClass in terms of hierarchy, and not my_method, even though I wrote it in under my_method. Using "self" makes this object global to all methods under MyClass. Finally, my_intance = MyClass() So, my_instance.my_object is the "instance of the object". > This is all pretty confusing to me. This is really all there is to it. In the tutorial I sent so far, I explained most of the basics of PyGTools/Python OOP (PyG POOP?) If you just get this stuff down, the rest is pretty simple. :-) Jeff -- J.W. Bizzaro mailto:bizzaro at bc.edu Boston College Chemistry http://www.uml.edu/Dept/Chem/Bizzaro/ --