Accessing an object name ?
Quinn Dunkan
quinn at lira.ugcs.caltech.edu
Fri Jul 16 19:07:57 EDT 1999
More information about the Python-list mailing list
Fri Jul 16 19:07:57 EDT 1999
- Previous message (by thread): Accessing an object name ?
- Next message (by thread): sgmllib has problems with dots in tag names
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, 16 Jul 1999 10:38:45 +0000, bernard <bh at cellware.de> wrote: > >Is there any way of mapping from an object id to an object name >so that given the object declaration: > >obj1 = myClass() > >I can, within an instance method, access the object name 'obj1' ? > >bernard. No, not really. Actually, you can, but it's a bad idea. You could do this: class Foo: def name(self): g = globals() for key in g.keys(): if g[key] is self: return key but you really don't want to, because this will break as soon as you use Foo from a different module. This is because there's no real "global" in python, just module global, so Foo won't be able to get ahold of the right namespace. Besides, an object can be bound to more than one name, or to no name at all (array[0] = Foo()). In simililar circumstances, I've done stuff like: obj1 = myClass('obj1') Which is cleaner anyway. OTOH, you can get class and method names: myClass.__name__ == 'myClass' myClass.method.__name__ == 'method' Binding via class or def is more special than =, I guess.
- Previous message (by thread): Accessing an object name ?
- Next message (by thread): sgmllib has problems with dots in tag names
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list