Shed my a light :)
Duncan Booth
duncan.booth at invalid.invalid
Mon Jun 2 07:20:36 EDT 2008
TheSaint <fc14301589 at icqmail.com> wrote:
> actions= ('print', 'sum', 'divide', 'myfunction')
> parameters=(5, 'nothing',5.63, object)
>
> for routines in actions:
> routines(parameters)
>
> I'd like to note that actions are string or string expressions of the
> program functions or python itself, so I've in my program something
> like:
>
> for nn in actions:
> eval('cp.%s' %nn)
>
> Where cp is an instance.
>
> So I'm asking here whether exist a way that these string become
> functions inside my program, without using eval()
eval('cp.%s' %nn) is more cleanly done as: getattr(cp, nn)
In the more general case, you could just use the functions/methods directly
instead of using their names:
actions = (cp.Print, cp.sum, cp.divide, cp.myfunction)
for nn in actions:
nn(parameters)
--
Duncan Booth http://kupuguy.blogspot.com
More information about the Python-list
mailing list