Given the statement
a = public_class()
I would like to generate
my_dict['a'] = private_class()
so that one could write
a.apparently_simple_method()
and that, behind the scene, I could translate that as
my_dict['a'].not_so_simple_method()
as well as do things like
for name in my_dict: do_stuff(name)
Why can't you just make public_class a factory, alias the method in PrivateClass and access the names through locals()?
py> class PrivateClass(object): ... def not_so_simple_method(self): ... print "not so simple" ... apparently_simple_method = not_so_simple_method ... py> def public_class(): ... return PrivateClass() ... py> a = public_class() py> a.apparently_simple_method() not so simple py> # add 'name' and 'value' to locals() before iteration starts py> name, value = None, None py> for name, value in locals().iteritems(): ... if isinstance(value, PrivateClass): ... print name, value ... a <__main__.PrivateClass object at 0x01146D50>
Steve -- http://mail.python.org/mailman/listinfo/python-list