On 01/-10/-28163 02:59 PM, Kayode Odeyemi wrote:
Hello friends,

An instance of my subclass doesn't invoke its superclass method, except when
it is referenced
directly.

Here is what I mean:

class A(object):
...     def log(self, module):
...             return str('logged')
...

class B(A):
...     def __init__(self, module):
...             self.module = A().log(module)
...
c = B('system')
# I expect 'logged' to be printed here
print c.log('system') # why do I have to do this?
'logged'
Why do I have to make a call to c.log before log() method can be invoked?

My reasoning is such that since I have passed the log() method to B's
constructor, an instance
of B should invoke A's log() method.

What could I be missing in class A or B to have this working as expected?
What makes you think that A.log() was not invoked???

You have no print statement, so you can't tell that way. All the method does is to modify a temporary object of type A, so you can't tell that way.

Perhaps you mean to write
      self.module = A.log(self, module)

So that the return value could do some good.

DaveA

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to