In article <[EMAIL PROTECTED]>, [EMAIL PROTECTED] wrote: > The following bit of code will allow an instance member to > be called by reference. How can I map a string (e.g. > "hello1" or "Foo.hello1" to a the instance member? > > class Foo: > def hello1(self, p): > print 'hello1', p > def hello2(self, p): > print 'hello2', p > def dispatch(self, func, p): > func(self,p) > > f=Foo() > f.dispatch(Foo.hello1, 23) > f.dispatch(Foo.hello1, 24) > > f.dispatch_as_string("hello1", 23) ## this is what I want to do.
Do what's below. Then learn about *args to make a version that works with variable numbers of parameters... class Foo: def hello1(self, p): print 'hello1', p def hello2(self, p): print 'hello2', p def dispatch(self, func, p): func(self,p) def dispatch_as_string(self, funcname, p): getattr(self, funcname)(p) f = Foo() f.dispatch_as_string('hello1', 'world') > Many TIA and apologies if this is a FAQ, I googled and couldn't > find the answer. -- David C. Ullrich -- http://mail.python.org/mailman/listinfo/python-list