On Sun, Mar 25, 2018 at 8:37 PM, Jugurtha Hadjar <jugurtha.had...@gmail.com> wrote: > On 03/24/2018 07:14 PM, D'Arcy Cain wrote: >> >> class C1(dict): >> class C2(object): >> def f(self): >> return X['field'] >> >> O1 = C1() >> O1['field'] = 1 >> O2 = O1.C2() >> print(O2.f()) > > > I prefer to *feed* the child to the parent or vice versa.
Congrats, this ranks on my list of "creative people who sound like psycho murderers". Digital artists and cooks tend to rank fairly highly on that list. > class C1(object): > def __init__(self): > self.child = None > class C2(object): > def __init__(self, parent=None): > self.parent = parent The trouble with this is that there's fully-constructed objects with no parent-child relationships. Why should you have a two-step construction process? It makes a LOT more sense to simply require a parent on construction, rather than feeding one to the other in a post-construction assignment. And if you remove the default here, your suggestion isn't materially different from what's already been posted. ChrisA -- https://mail.python.org/mailman/listinfo/python-list