mapping a string to an instancemethod

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • mh@pixar.com

    mapping a string to an instancemethod

    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_s tring("hello1", 23) ## this is what I want to do.

    Many TIA and apologies if this is a FAQ, I googled and couldn't
    find the answer.

    --
    Mark Harrison
    Pixar Animation Studios
  • David C. Ullrich

    #2
    Re: mapping a string to an instancemethod

    In article <7wIkk.16976$mh 5.6016@nlpi067. nbdc.sbc.com>, mh@pixar.com
    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_s tring("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_str ing(self, funcname, p):
    getattr(self, funcname)(p)

    f = Foo()
    f.dispatch_as_s tring('hello1', 'world')
    Many TIA and apologies if this is a FAQ, I googled and couldn't
    find the answer.
    --
    David C. Ullrich

    Comment

    Working...