get instance name inside of member function

Steve Holden sholden at holdenweb.com
Thu Jan 9 09:30:57 EST 2003


"Ralf Oberländer" <ralf.oberlaender at emsys.de> wrote in message
news:3E1D869F.2050809 at emsys.de...
> Hi gurus,
>
> is it possible to get the name of the instance inside a member function:
>
> class a:
>      def inst_name():
>          pass
>
> inst=a
>
I think you probably mean

    inst = a()

right?

> so that
>
> inst.inst_name()
>
> results in the string "inst"
>
> I need it for logging
>

Define "need". Consider the following code:

    class a:
        pass

    inst1 = inst2 = a()

Is the name of the instance "inst1" or "inst2" here? Names are actually
references to values in Python, so values don't actually "have" names - they
"are bound" to names (or names are bound to values: different authors use
ther terminology in slightly different ways).

You would be a lot better off *generating* a name in the __init__ function,
I would have thought, but perhaps you can convince me you really "need" "the
name" of the instance.

regards
-----------------------------------------------------------------------
Steve Holden                                  http://www.holdenweb.com/
Python Web Programming                 http://pydish.holdenweb.com/pwp/
Bring your musical instrument to PyCon!    http://www.python.org/pycon/
-----------------------------------------------------------------------







More information about the Python-list mailing list