不使用eval函数怎么办?由于评估功能并不安全,我想要替代方案

时间:2018-06-23 04:51:43

标签: python eval

n = int(input()) #taking input

l = []
for _ in range(n):

    s = input().split()
    cmd = s[0]
    args = s[1:]
    if (cmd !="print"):
        cmd += "("+ ",".join(args) +")"
        eval("l." + cmd)
    else:
        print(l)

1 个答案:

答案 0 :(得分:1)

您可以进行动态方法调用,并使用传播运算符传递参数。

getattr(l, cmd)(*args)