Inheritance and forward references (prototypes)
Dave Angel
davea at ieee.org
Sat Jun 20 14:43:32 EDT 2009
Lorenzo Di Gregorio wrote:
> Hi,
>
> I'm wondering what would be the preferred way to solve the following
> forward reference problem:
>
> ---------------------------------------
> class BaseA(object):
> def __init__(self):
> return
>
> class DebugA(BaseA):
> def __init__(self):
> return
>
> # here I would have a prototype of class A which is the same as class
> BaseA
>
> class B(object):
> def __init__(self):
> self.obj = A()
> return
>
> if __name__ == "__main__":
> # class A(BaseA): # Uncomment this for using BaseA objects
> # pass
> class A(DebugA): # Uncomment this for using DebugA objects
> pass
> ---------------------------------------
>
> I can figure out some ways to fix this but none seems satisfying.
> Either they are too specific or too cumbersome.
> A runtime redefinition of class A does not seem to work either.
> What would be the most "pythonesque" solution other than sorting out
> the class order?
>
> Best Regards,
> Lorenzo
>
>
You haven't shown us any problem. class B works fine with a forward
reference to A. Now if you were trying to subclass A before defining
it, that'd be a problem. Or if you were trying to make an instance of B
before defining A.
Better put some code together with enough meat to actually show a
symptom. And tell us what sys.version says. I'm testing with 2.6.2
(r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)], running
on Win XP.
More information about the Python-list
mailing list