Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #54407
| Newsgroups | comp.lang.python |
|---|---|
| Date | 2013-09-18 16:54 -0700 |
| References | <9896e047.0203211303.741f695a@posting.google.com> |
| Message-ID | <9043161b-e193-482a-a90c-42e8dfae978c@googlegroups.com> (permalink) |
| Subject | Re: mutlifile inheritance problem |
| From | Peter Cacioppi <peter.cacioppi@gmail.com> |
This is a very old topic, but here is a trick for single inheritance. (The problem you allude to isn't restricted to multiple inheritance).
Any class with a single parent simply defines this function.
def mySuper(self) :
return super(self.__class__, self)
And then any parent function be referenced like
self.mySuper().foo()
This includes __init__.
You can read more here.
http://atlee.ca/blog/posts/blog20081121python-reload-danger-here-be-dragons.html
On Thursday, March 21, 2002 2:03:23 PM UTC-7, Marc wrote:
> I have classes defined in different files and would like to inherit
> from a class in file A.py for a class in file B.py but am running into
> problems. I'm using Python 1.5.2 on Windows NT
>
> Here's a specific example:
>
> ************************
> file cbase01.py:
>
> class CBase:
>
> def __init__(self):
> self.cclass = None
> print "cbase"
>
> class CImStream(CBase):
>
> def __init(self):
> CBase.__init__(self)
> print "CImStream"
>
> *************************
> in file wrappers_A01.py:
>
> import cbase01
> reload(cbase01)
>
> class ImStream_SavedBitmaps(cbase01.CImStream):
>
> def __init__(self):
> cbase.CImStream.__init__(self)
> print "SavedBitmaps"
>
> **************************
> in file sequencer01.py
>
> import cbase01 # the offending lines, program works
> reload(cbase01) # if I comment these out.
>
> class Sequencer:
>
> def Append(self, item):
> pass
>
> *****************************
> in test02.py
>
> import wrappers_A01
> reload(wrappers_A01)
>
> import sequencer01
> reload(sequencer01)
>
> x0 = wrappers_A01.ImStream_SavedBitmaps()
> ***************************************************************
>
> If I run test02 I get the traceback
>
> Traceback (innermost last):
> File "<string>", line 1, in ?
> File "D:\PythonCode\pna\eyeTracking\tests\test02.py", line 15, in ?
> x0 = wrappers_A01.ImStream_SavedBitmaps()
> File "D:\PythonCode\pna\eyeTracking\tests\wrappers_A01.py", line 21,
> in __init__
> cbase.CImStream.__init__(self)
> TypeError: unbound method must be called with class instance 1st
> argument
>
>
> Any ideas what I am doing wrong?
>
> Thanks,
> Marc
Back to comp.lang.python | Previous | Next — Next in thread | Find similar | Unroll thread
Re: mutlifile inheritance problem Peter Cacioppi <peter.cacioppi@gmail.com> - 2013-09-18 16:54 -0700
Re: mutlifile inheritance problem Peter Cacioppi <peter.cacioppi@gmail.com> - 2013-09-18 17:03 -0700
Re: mutlifile inheritance problem Ned Batchelder <ned@nedbatchelder.com> - 2013-09-18 20:38 -0400
Re: mutlifile inheritance problem Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-09-19 02:05 +0000
csiph-web