Hum yes a third class is a nice option! btw managed to do it with those in Hooman
self._all_widgets = [] def button(self, *args, **kwargs): b = Button(*args, **kwargs) self._all_widgets.append(b) return b def update_all(self): for widget in self._all_widgets: widget.update() Just in the drawing loop i have (hapi is a Hooman object) for i in range(5): x = hapi.button( # params ) hapi.update_all() the update all adds a button in the array each frame, that's beyond the question but for creating buttons on the fly each frame was never a good option (better define before then update x and y in loop) that's the only caveat to watch out if people create objects on the fly Kind Regards, Abdur-Rahmaan Janhangeer compileralchemy <https://compileralchemy.github.io/> | blog <https://abdur-rahmaanj.github.io/> github <https://github.com/Abdur-RahmaanJ> Mauritius On Thu, May 28, 2020 at 12:41 AM Chris Angelico <ros...@gmail.com> wrote: > On Thu, May 28, 2020 at 6:27 AM Abdur-Rahmaan Janhangeer > <arj.pyt...@gmail.com> wrote: > > > > Thanks, > > > > Actually i want to keep a reference from B to all A > > instantiated like in the case of z > > > > I have class A and i want to call class B via A > > > > You can have > > > > def x(self, *args, **kwargs): > > return A(*args, **kwargs) > > > > but was wondering if we could keep track while > > doing it via z = ... > > > > Okay, now I think I get what you're after. Let's simplify and clarify > things. Let me know if I'm misinterpreting. > > 1) You have a container class that can instantiate objects of a thing class > 2a) You wish for the container to be aware of all things it has created - > OR - > 2b) You wish for the Thing to be aware of all containers that have created > them > 3) You want this to happen automatically. > > I'm not sure which way round you're trying to do this, so I'll try to > answer both. Your Container (Hooman) can construct multiple Things > (Button), and other classes could also construct Things. So you need > some way to automatically register the Thing as you create it. > > The easiest way to do this would, I think, be to have your Container > subclass a utility class, and then use self.Button() instead of > Button(). That can take care of registering the button in some sort of > list, and then it can still return the button in case you need it for > something else. > > Would that work? Or am I completely off on my analysis? > > ChrisA > -- > https://mail.python.org/mailman/listinfo/python-list > -- https://mail.python.org/mailman/listinfo/python-list