dynamic call of a function

kishore prakis at gmail.com
Sat Jan 22 06:40:57 EST 2005


Hi Luigi Ballabio,

Thankyou very much for your reply,
it worked well.

Kishore.

Luigi Ballabio wrote:
> At 10:37 AM 10/19/01 +0200, anthony harel wrote:
> >Is it possible to make dynamic call of a function whith python ?
> >
> >I have got a string that contains the name of the function I
> >want to call but I don't want to do something like this :
> >
> >if ch == "foo" :
> >     self.foo( )
> >elif ch == "bar"
> >     self.bar( )
> >....
>
> Anthony,
>          here are two ways to do it---I don't know which is the best,
nor
> whether the best is yet another. Also, you might want to put in some
error
> checking.
>
> class Test:
>      def foo(self):
>          print 'Norm!'
>      def bar(self):
>          print 'Dum-de-dum'
>      def dynCall1(self,methodName):
>          eval('self.%s()' % methodName)
>      def dynCall2(self,methodName):
>          method = vars(self.__class__)[methodName]
>          method(self)
>
>  >>> t = Test()
>  >>> t.dynCall1('foo')
> Norm!
>  >>> t.dynCall2('bar')
> Dum-de-dum
> 
> Bye,
>          Luigi




More information about the Python-list mailing list