On Sat, 2 May 2009, John O'Hagan wrote: > On Fri, 1 May 2009, warpcat wrote:
[...] > > Given an object: > > > > class Spam(object): > > def __init__(self): > > # stuff.... > > > > I'd like it to print, when instanced, something like this: > > >>> s = Spam() > > > > I’m assigned to s! > > If you just want the names an instance has in a given namespace, you could > give your class a method like: > > class KnowNames(object): > def get_names(self, namespace): > id_str = str(hex(id(self))[:-1]) > return [i for i in namespace if id_str in str(namespace[i])] > > which will give you a list of names when called on an instance. And which is a silly way of saying: class KnowName(object): def get_names(self, namespace): return [i for i in namespace if namespace[i] is self] removing four function calls, an assignment and a slicing operation from a mere two lines; certainly a personal best for insanely over-wrought code! Oops. :) , John -- http://mail.python.org/mailman/listinfo/python-list