Access an object to which being bound
Abdur-Rahmaan Janhangeer
arj.python at gmail.com
Wed May 27 23:59:22 EDT 2020
Greetings,
.append(self) is a hit idea
Updated the project with the button demo
https://github.com/Abdur-rahmaanJ/hooman/
Next i will be attempting to add a grid system.
I feel myself developing tkinter from scratch
Thanks for the help everybody ^^_
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 2:45 AM DL Neil via Python-list <
python-list at python.org> wrote:
> @AR,
>
>
> On 28/05/20 8:41 AM, Chris Angelico wrote:
> > On Thu, May 28, 2020 at 6:27 AM Abdur-Rahmaan Janhangeer
> > <arj.python at 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?
>
> Here's some sample code, which may give you some ideas (intriguingly it
> comes from my playing-about with a project @Chris described (some time
> back), which includes the need to 'register' sub-components and to keep
> a count of them):
>
>
> # PSL
> import collections
> from itertools import count
>
>
> class Link():
> '''Contain original link, manipulate for presentation,
> and retain for later action.
> '''
>
> ID = count( 0 )
> instances = []
>
>
> def __init__( self, token:Token, )->None:
> '''Instantiate.'''
> self.token = token
>
> self.linkNR:int = next( self.ID ) #linkNR
> Link.instances.append( self ) #form a register
> of instances/links
>
> self.URL:str = ""
>
> ...more methods here - likely irrelevant to your needs...
>
>
> class LinksRegister( collections.UserList ):
> '''Links available for use within application.'''
>
> def __iter__( self ):
> '''Generator.'''
> for link in self.data:
> yield link
>
> def register_links( self, cls ):
> '''Register all links.'''
> self.data = cls.instances
>
>
> Once all of the Link() objects have been ascertained, we can make use of
> the class-attributes:
>
> links_register.register_links( Link )
>
> NB in this scenario it is only necessary to register once - all of the
> links at-once, cf registering each link as it is itself instantiated.
> Also, that each Link() object is not aware that it is/will be 'registered'!
>
>
> Later, when it is necessary to carry-out the same action on each of the
> objects, we can use the register's iterator/generator (as above).
>
>
> Critique/other ideas welcome...
> --
> Regards =dn
> --
> https://mail.python.org/mailman/listinfo/python-list
>
More information about the Python-list
mailing list