Steven Bethard wrote: > André wrote: > > Using the method suggested by Steven Bethard, I *almost* got it working > > the way I would like. [snip] > > It looks like you want PrivateClass.dict updated every time that > globals() is updated.
yes, that is what I would like to do. >You can just use globals directly instead: > > py> class PrivateClass(object): > ... def __init__(self, globals): > ... self.globals = globals > ... def apparently_simple_method(self): > ... for name, value in self.globals.iteritems(): > ... if value is self: > ... print "instance %s called not so simple" % name > ... > py> def public_class(): > ... return PrivateClass(globals()) > ... > py> alpha = public_class() > py> alpha.apparently_simple_method() > instance alpha called not so simple > py> beta = public_class() > py> beta.apparently_simple_method() > instance beta called not so simple > That's exactly what I was looking for; thank you! > On the other hand, the iteration in > PrivateClass.apparently_simple_method has a very bad code smell... > I'm not sure what you mean... Is it because it makes use of information that is exterior to the class, which is not passed as a parameter to the method? [feel free to ignore this question if you want; you have already helped me tremendously!!!] André -- http://mail.python.org/mailman/listinfo/python-list