Let's say I've got: class a: pass class b: def __init__ (self, x): self.x = x and then I do: foo = a() foo.b = b(foo) I've now got two objects that contain references to each other. Is this bad?