how to get a class instance name during creation?
Aaron "Castironpi" Brady
castironpi at gmail.com
Sat Oct 4 02:14:07 EDT 2008
On Oct 3, 1:46 pm, Bruno Desthuilliers
<bdesth.quelquech... at free.quelquepart.fr> wrote:
> dmitrey a écrit :
>
> > hi all,
> > I have a code
> > z = MyClass(some_args)
> > can I somehow get info in MyClass __init__ function that user uses "z"
> > as name of the variable?
>
> > I.e. to have __init__ function that creates field z.name with value
> > "z".
>
> This has been debated to hell and back. To make a long story short, here
> are two common use cases:
>
> x = MyClass()
> y = x
> del x
>
> objects = [MyClass() for i in range(100)]
>
> If you can come with a meaningfull answer to "what's *the* name of any
> of the MyClass instance(s)" in both cases, then please let us know...
Hmmm, just thinking:
What about a function:
autoname( 'x= MyClass' )
which calls exec as well as determines the name? That could use
'code' and 'ast' modules and 'parse', or just take the first \w
characters, assuming assignment, or:
autoname( 'x', MyClass() )
which executes assignment and sets an attr or calls a method on the
second arg.
More information about the Python-list
mailing list