André wrote:
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

Reply via email to