On 01/10/2013 09:06 AM, richard kappler wrote:
Class is still something I struggle with. I think I'm finally starting
> to get my head wrapped around it, but the discussion in a different > thread has sparked a question. First, please check my understanding:
> A class creates objects, it's like a template that allows me to create > as many copies as I want of the object but allows me to have slightly > different versions of the object by having different values for the > variables within the object, which I can set with arguments? There are good answers already, I just want to address this question; you are correct but classes allow you to do other things, too. You may want to use a class even if you don't need multiple instances. Classes allow you to group related functionality and data together: class Tree(object): height = 0 def grow(self): self.height += 1 You may have a dozen of related functions and you can logically group them together by making them methods of a class, making it easier to think about and work on the logic of your program. Classes also create a namespace for each instance: x = 1 class A(object): x = 2 a = A() a.x = 3 Here, a.x is completely independent of the global namespace's 'x'. In instance methods, it can be called with 'self.x' . There are other things classes provide, but these are the most important in small / medium size programs. You can read up on OOP here: http://en.wikipedia.org/wiki/Object-oriented_programming HTH, - m -- Lark's Tongue Guide to Python: http://lightbird.net/larks/ _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor