inheritance?
John Henry
john106henry at hotmail.com
Wed Aug 16 17:51:19 EDT 2006
Oops! Forgot to remove fromfile from baseClass. Wouldn't matter
though.
John Henry wrote:
> > Here I tried this example and maybe this will explain the difficulties
> > I'm having.
> > 1) at the time the baseClass is constructed shouldn't the constructor
> > of the appropriate
> > type be called.
>
> Not automatically.
>
> > 2) getName is doing nothing...
> >
> > class baseClass:
> > def __init__(self):
> > pass
> > def fromfile(self, str):
> > if (str == 'A'):
> > a = typeA()
> > else:
> > a = typeB()
> > def getName(self):
> > pass
> >
> > class typeA(baseClass):
> > def __init__(self):
> > self.name='A'
> > print 'typeA init'
> > def fromfile(self, str=None):
> > print 'typeA fromfile'
> > def getName(self):
> > print self.name
> >
> > class typeB(baseClass):
> > def __init__(self):
> > self.name='B'
> > print 'typeB init'
> > def fromfile(self, str=None):
> > print 'typeB fromfile'
> > def getName(self):
> > print self.name
> >
> > bc = baseClass()
> > bc.fromfile('A')
> > bc.getName()
> > bc.fromfile('B')
> > bc.getName()
> > bc.getName()
> >
> > log:
> > typeA init
> > typeB init
> >
>
> > >
> > > --
> > > Steven D'Aprano
>
> Maybe this would help:
>
> class baseClass:
> def __init__(self, name):
> self.name=name
> print 'type'+self.name+' init'
> def fromfile(self, str):
> if (str == 'A'):
> a = typeA()
> else:
> a = typeB()
> def getName(self):
> print self.name
>
> class typeA(baseClass):
> def __init__(self):
> baseClass.__init__(self, "A")
> def fromfile(self, str=None):
> print 'type'+self.name+' fromfile'
>
> class typeB(baseClass):
> def __init__(self):
> baseClass.__init__(self, "B")
> def fromfile(self, str=None):
> print 'type'+self.name+' fromfile'
>
> bcA = typeA()
> bcA.fromfile()
> bcA.getName()
>
> bcB = typeB()
> bcB.fromfile()
> bc.getName()
>
> I think you're looking at objects in an inverted way.
>
> typeA is a kind of baseClass, and so is typeB.
>
> not:
>
> baseClass consists of 2 subclasses A and B.
More information about the Python-list
mailing list