On Mar 15, 6:33 am, "andrew cooke" <and...@acooke.org> wrote: > someone else has answered this, but an extra trick that is sometimes > useful is that while there is no forward referencing you can often exploit > late binding and evaluation order. > > your example will not work because code at the class level is evaluated > when the module is loaded. but code at the method level is only evaluated > when called, so > > class A: > def __init__(self): > self.someType = B > > class B: > anotherType = A > > will work. > > andrew >
Not the same. The OP wanted someType to be a class-level attribute, not an instance level one. I'm guessing the class mapping is all part of an overall design, so I would define all of these after creating A and B as empty classes: class A: pass class B: pass A.someType = B B.anotherType = A -- Paul -- http://mail.python.org/mailman/listinfo/python-list