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

Reply via email to