Search code examples
pythonstringparametersevalfill

how to fill the paremeter into function name string for invoking?


I've got

str1 = 'foo1().foo2()'
para = [1,2]

what I want is:

str2 = "foo1(1).foo2(2)"
eval(str2)

and sort of:

eval(str1)(1,2)

Thanks for help.


Solution

  • Why not just store a format string, then?

    str1 = 'foo1({0}).foo2({1})'
    para = [1,2]
    eval(str1.format(*para)) # equivalent to eval(str1.format(1,2))