call to function by text variable

Nanjundi nanjundi at gmail.com
Mon Mar 26 15:32:46 EDT 2007


On Mar 25, 6:36 pm, "ianaré" <ian... at gmail.com> wrote:
> yeah the subject doesn't really make sense does it?
>
> anyway want I want to do is this:
> if n == 1:
>
>     self.operations.insert(pos, operations.Replace.Panel(self, main))
>
> elif n == 2:
>
>     self.operations.insert(pos, operations.ChangeCase.Panel(self,
> main))
>
> elif n == 3:
>
>     self.operations.insert(pos, operations.Move.Panel(self, main))
>
> As you can see all the different functions have the same variables, so
> it would be easier if I could just make a list and use that.
>
> like this:
>
> list = ["Replace", "ChangeCase", "Move"]
> textVariable = list[n]
> self.operations.insert(pos, operations.[textVariable].Panel(self,
> main))

try this one:
textVariable = list[n-1]
exec( "self.operations.insert(pos, operations.%s.Panel(self, main))" %
textVariable )

Not sure if this is an elegant/right way.
-N






More information about the Python-list mailing list