> > That is, each of the classes want to inherit from the others. That's not exactly what I'm doing, but your comment still might help. I actually want to include an instance of a subclass in it's superclass like this:
===== foo.py ===== import Baz class Foo: baz = Baz.Baz() def __init__(self): pass ===== ===== bar.py ===== import Foo class Bar(Foo.Foo): pass ===== ===== baz.py ===== import Bar class Baz(Bar.Bar): pass ===== > The usual solution in these cases is to find the common required > functionality and factor that out to a separate class that is then the > superclass of two of the existing classes, breaking the circle. > > ===== wibble.py ===== > # no dependencies > > class Wibble(object): > pass > ===== > > ===== foo.py ===== > import wibble > import bar > > class Foo(wibble.Wibble, bar.Bar): > pass > ===== > > ===== baz.py ===== > import wibble > > class Baz(wibble.Wibble): > pass > ===== > > Note that Baz no longer subclasses foo.Foo, and both Foo and Baz get > the common functionality they share from wibble.Wibble. I have to think about that for a bit and see if it makes sense to factor anything out. Thanks for the idea. Would that be the best solution considering the above description? ~Sean > > -- > \ "Buy not what you want, but what you need; what you do not need | > `\ is expensive at a penny." -- Cato, 234-149 BC, Relique | > _o__) | > Ben Finney -- http://mail.python.org/mailman/listinfo/python-list