我不断收到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
答案 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])