尝试在 Python 中使用 exec 函数生成数组会引发错误

Trying to generate an array with an exec function in Python throws an error

我正在尝试生成 Python 中的下一个代码:

atribute_name = 'atr1'
exec("list_%s = []", atribute_name)

所以预期的结果应该是:

list_atr1 = []

但是当我执行它时,我收到下一条错误消息:

TypeError: exec: arg 2 must be a dictionary or None

为什么会这样?

您应该将逗号替换为 % 以进行字符串连接。

exec("list_%s = []" % atribute_name)

您正在为 exec 函数传递第二个参数。 相反,您只需要格式化您的字符串。 下面的示例代码可以帮助你。

atribute_name = 'atr1'
str1 = "list_%s = []" % atribute_name

print str1
exec(str1)
print list_atr1