On Jun 2, 12:35 pm, TheSaint <[EMAIL PROTECTED]> wrote:
> Hi,
> I using eval for quite strange reason, as long as I don't know a different
> way to implement.
>
> An example:
>
> 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()
>
> --
> Mailsweeper Home :http://it.geocities.com/call_me_not_now/index.html

help(getattr)
Help on built-in function getattr in module __builtin__:

getattr(...)
    getattr(object, name[, default]) -> value

    Get a named attribute from an object; getattr(x, 'y') is
equivalent to x.y.
    When a default argument is given, it is returned when the
attribute doesn't
    exist; without it, an exception is raised in that case.


for nn in actions:
    func = getattr(cp, nn)
    if callable(func):
        func(parameters)

or alternatively

for nn in actions:
    getattr(cp, nn)(parameters)

Hope that helps.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to