Erik wrote: ^^^^ Please fix, Erik #75656. > On 07/12/15 18:10, Tony van der Hoff wrote: >> A highly contrived example, where I'm setting up an outer class in a >> Has-a relationship, containing a number of Actors. The inner class needs >> to access a method of the outer class; here the method get_name. > > Generally, an object should not need to know which container it's in
NAK. All kinds of objects already "know" which container they are in. > (let alone its "index" or "key" in that container). That is a different issue. > Amongst other things, you can't put the object into multiple containers You could if you made it a list of container references. > which might be organised differently and you are asking for bugs where the > container and the object get out of sync WRT just where the object is in > the container It is the container’s job to make sure that this does not happen. >> Can anyone please advise me on how to achieve this magic? > > As you can't sensibly put the object into more than one container at a > time anyway, You can. Quickhack: class Child: self._parents = [] def add_to_parent (self, parent): self._parents.append(parent) self._parents = list(set(self._parents)) def get_parents (self) return self._parents class Parent: self._children = [] def add_child (self, child): self._children.append(child) child.add_to_parent(self) | >>> p = Parent() | >>> c = Child() | >>> p.add_child(c) | >>> p2 = Parent() | >>> p2.add_child(c) | >>> c.get_parents() | [p, p2] “As a child, I want to know who my parents are.” Certainly you will not deny the validity of that user story ;-) -- PointedEars Twitter: @PointedEars2 Please do not cc me. / Bitte keine Kopien per E-Mail. -- https://mail.python.org/mailman/listinfo/python-list