Accessing container's methods
Thomas 'PointedEars' Lahn
PointedEars at web.de
Tue Dec 8 14:02:10 EST 2015
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.
More information about the Python-list
mailing list