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.


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

Reply via email to