Don Taylor wrote: > Is there a way to discover the original string form of the instance that > is represented by self in a method? > > For example, if I have: > > fred = C() > fred.meth(27) > > then I would like meth to be able to print something like: > > about to call meth(fred, 27) or > about to call fred.meth(27) > > instead of: > > about to call meth(<__main__.C instance at 0x00A9D238>, 27) > > Thanks in advance, > > Don. > In general, this requires exhaustive search of name bindings e.g.,:
>>> def get_names_of(obj, ns): ... return [name for name, value in ns.iteritems() if value is obj] ... >>> class A(object): ... def global_names_bound_to_me(self): ... return get_names_of(self, globals()) ... >>> a = A() >>> a.global_names_bound_to_me() ['a'] >>> b = a >>> a.global_names_bound_to_me() ['a', 'b'] >>> HTH Michael -- http://mail.python.org/mailman/listinfo/python-list