[Tutor] OO terms and definitions

Andrei Kulakov ak@silmarill.org
Sun, 09 Dec 2001 13:42:38 -0500


On Sun, Dec 09, 2001 at 10:27:45AM -0800, Frank Peavy wrote:
> I am a little(or is that a lot) confused about some OO terminology.
> I have some quite a bit on the web and I have seen all sorts of definitions 
> for the following terms:
> Module
>    Class
>       Function?
>       Method?
>       Procedure?
> 
> It seems to me that there is a hierarchy to some degree, as idented above.
> And, I am under the impression that a Module is usually a file with a .py 
> extension that contains the other items.

Yep

> 
> Does a Module always have a Class? I am under the impression that this is 
> not the case.

You're right. Class is a "kind" of something. For example, you might
have a class Tree, 2 subclasses - Pine and Oak, and 2 instances of Pine
- pine that grows in your garden and pine that grows in Central Park in
  manhattan.


> 
> How do Function, Method and Procedure differ? Or are they the same...?

Procedure is just another name for a function. Function is some code
that is grouped under one name and can be called and executed using that
name. Method is a function that is associated with an object - for
example, the Pine class may have a method called die that would kill the
pine when run.

class Tree:
    # method that runs when class is instantiated
    def __init__(self):
        self.alive = "yes"

    def die(self):
        self.alive = "no"
        print "This tree is dead now."

class Pine(Tree):
    # I don't remember exactly but I think the __init__ method is an
    # exception because you have to explicitly re-run it in inherited
    # class.. die method will be inherited automatically
    def __init__(self):
        Tree.__init__()     # run Tree's __init__

my_garden_pine = Pine()         # make an instance of Pine (instantiate
                                # Pine)
print my_garden_pine.alive      # will print "yes"
my_garden_pine.die()            # run die method; will print "this tree
                                # is dead now"
print my_garden_pine.alive      # will print "no"

> 
> 
> _______________________________________________
> Tutor maillist  -  Tutor@python.org
> http://mail.python.org/mailman/listinfo/tutor

-- 
Cymbaline: intelligent learning mp3 player - python, linux, console.
get it at: cy.silmarill.org