[Tutor] Accessing the name of an instance variable
Gonçalo Rodrigues
op73418 at mail.telepac.pt
Sun Nov 16 07:41:35 EST 2003
On Sun, 16 Nov 2003 11:05:13 -0000, you wrote:
>For debugging purposes, I would like to be able to print the name of some
>instances of classes directly from the program, together with the class
>data. The data is of course simple but getting the name is a problem to me.
>
>The best I have come up with so far is vars(), from which I can scan for
>instances of the relevant classes.
>
>However the name of the instance is returned as a string. How would I get my
>hands on the actual instance from this in order to get at its instance so as
>to print the data? Or is there a better way of going about what I need to
>do?
Variables in Python are just names (e.g. strings) that are bounded (or
reference) some value, a Python object. Object's per se are nameless.
A collection of names, values is called a namespace, and is currently
implemented as a dictionary.
The following shows that, as in real life, an object can have more
than one name.
>>> a = b = []
>>> print a is b
True
Having said this, look at the globals, locals functions
>>> print globals.__doc__
globals() -> dictionary
Return the dictionary containing the current scope's global variables.
>>> print locals.__doc__
locals() -> dictionary
Update and return a dictionary containing the current scope's local
variables.
As a final note, shouldn't you be using a *debugger* for debugging
purposes? Also consider the unittest module for testing your code. If
well exercised you can dispense with a debugger altogether.
With my best regards,
G. Rodrigues
More information about the Tutor
mailing list