Astley Le Jasper wrote:
Sorry for the numpty question ...

How do you find the reference name of an object?

So if i have this

bob = modulename.objectname()

how do i find that the name is 'bob'

Short answer is that you can't. This because Python's names (bob) are bound to objects (modulename.objectname()). They are NOT variables as they are in "other" programming languages. It is perfectly legal in Python to bind multiple names to a single object:

a=b=c=modulename.objectname()

a, b, and c all point to the same object. An object can have an unlimited number of names bound to it. This is one of the most difficult concepts for many beginning Python programmers to understand (I know I had a difficult time at first). It is just not how we taught ourselves to think about "variables" and you can write quite a lot of Python treating the names you bind to objects like they were "variables".

To accomplish what you want, put your instances in a dictionary.

instances = {}
instances['bob'] = modulename.objectname()
instances['joe'] = modulename.objectname()
.
.
.

Then you can reference them as:

instances[name]

and/or you can pass the name in as an argument to the __init__ method of objectname so that it can "hold" the name of the dictionary key that references it (good for debugging/logging).

-Larry
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to