"James Reynolds" <eire1...@gmail.com> wrote

parent class and two child classes. Some stuff is done to the object that is
passed to the function in one of the child classes and this then calls a
function from the global class passing local variables (from the child
class).

You really need to tighten up on the terminology because the
imprecision is part of your problems understanding the concepts.

You pass an object to a method of a child class which calls
a method in the parent class. You pass instance variables
of the child class as arguments to the parent class method..

When I do this, I am told: AttributeError: 'HillBuilder' object has no
attribute 'MountainBuilder'

The question is, what am I doing wrong?

Confusing inheritance with composition.
Your child class does not have an attribute MountainBuilder,
it *is* a MountainBuilder. self within the method referes to your
subclass of MountainBuilder so you only need self.

class MountainBuilder(object):
     def pinetree_func(self, knoll)
           do stuff to knoll
           return knoll
     def mountain_func(self, hill)
           knoll = hill * 2
           pinetree = pintree_func(knoll)
           return hill

class HillBuilder(MountainBuilder):
def __init__(self, mountain):
             OptionLoad.__init__(self, mountain)
             self.MountainBuilder.mountain_func

This should be
               self.mountain_func(mountain)

     def hill_func(self)
           hill= do stuff to self.mountain
           grassyknoll = MountainBuilder.mountain_func(hill)

And this should be
             grassyknoll = self.mountain_func(hill)

mountain func as a method of MountainBuilder is also
a method of HillBuilder (thats what inheritance means)
so you access it through self.


Take a look at the BankAccount example in the OOP
topic of my tutor for more examples of subclasses
calling superclass methods

HTH,

--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to