我正在尝试从raw_input读取函数调用和值,并在列表中运行它们。我已经创建了一个列表,我正在调用函数,以及一个列表来保存raw_input。我的问题是从原始列表中调用名为cmd的列表中的函数调用,称为“l”。例如,如果cmd [0]的值为'append',并且cmd [1:]的值为[6,7,8],我想调用'l.append(6,7,8)' 。
这是我在%字符串中不断收到错误的地方。 print(l。'%s(%s)'%(cmd [0],cmd [1:]))
答案 0 :(得分:2)
只是将函数打印到STDOUT不会调用它。考虑使用Pythons内置函数exec()
,它支持动态执行Python代码。
使用exec()
只需将字符串传递给它,然后将其解析为一组Python语句,然后执行该语句。您的字符串包含一个对象l
,一个方法append()
存储在cmd[0]
中,方法参数args
包含在cmd[1:]
中:
exec("{object}.{method}({args})".format(object="l", method=cmd[0], args=cmd[1:]))
希望这会有所帮助:)