Python无法分配给运算符

时间:2018-11-19 03:31:20

标签: python

我不断收到SyntaxError:

  

尝试分配ID时无法分配给操作员

工作代码

canvas = self.matrix.CreateFrameCanvas()
graphics.DrawText(canvas, font, LEFT, TOP, setcolor, MESSAGE)
self.matrix.SwapOnVSync(canvas)

我要实现的目标

ID = "4"
canvas+ID = self.matrix.CreateFrameCanvas()
graphics.DrawText(canvas+ID, font, LEFT, TOP, setcolor, MESSAGE)
self.matrix.SwapOnVSync(canvas+ID)

错误:

canvas+ID = self.matrix.CreateFrameCanvas()
SyntaxError: can't assign to operator

2 个答案:

答案 0 :(得分:1)

运算符+用于连接字符串,而不是变量名。尽管您可以通过使用eval('canvas'+ID+'= self.matrix.CreateFrameCanvas()')来完成所需的操作,但这是一种糟糕的做法,但请使用列表。

答案 1 :(得分:1)

如果要以编程方式分配多个变量,例如canvas4和/或canvas5,依此类推,则可能应该使用列表或字典,而不是多个变量。

怎么样?

canvases = {}
ID = 4

canvases[ID] = self.matrix.CreateFrameCanvas()
graphics.DrawText(canvases[ID], font, LEFT, TOP, setcolor, MESSAGE)
self.matrix.SwapOnVSync(canvases[ID])