是的,这个问题以前有人问过。不,我读的答案都不能解决我的问题。
我想创造一个小弹跳游戏。我创造了这样的砖块:
def __init__(self,canvas):
self.canvas = canvas
self.brick1 = canvas.create_rectangle(0,0,50,20,fill=random_fill_colour(),outline=random_fill_colour())
self.brick2 = canvas.create_rectangle(50,0,100,20,fill=random_fill_colour(),outline=random_fill_colour())
self.brick3 = canvas.create_rectangle(100,0,150,20,fill=random_fill_colour(),outline=random_fill_colour())
self.brick4 = canvas.create_rectangle(150,0,200,20,fill=random_fill_colour(),outline=random_fill_colour())
self.brick5 = canvas.create_rectangle(200,0,250,20,fill=random_fill_colour(),outline=random_fill_colour())
self.brick6 = canvas.create_rectangle(250,0,300,20,fill=random_fill_colour(),outline=random_fill_colour())
self.brick7 = canvas.create_rectangle(300,0,350,20,fill=random_fill_colour(),outline=random_fill_colour())
self.brick8 = canvas.create_rectangle(350,0,400,20,fill=random_fill_colour(),outline=random_fill_colour())
self.brick9 = canvas.create_rectangle(400,0,450,20,fill=random_fill_colour(),outline=random_fill_colour())
self.brick10 = canvas.create_rectangle(450,0,500,20,fill=random_fill_colour(),outline=random_fill_colour())
self.bricksId = [self.brick1,self.brick2,self.brick3,self.brick4,self.brick5,self.brick6,self.brick7,self.brick8,self.brick9,self.brick10]
我试图在这里引用bricksId[0]
的ID:
self.hit_brick(pos,self.bricks.bricksId[0])
在前面的__init__
中,我将bricks定义为bricks,它被定义为Brick(canvas)
。但是,错误说明:
TypeError: 'Brick' object does not support indexing
在这个主题的其他问题的答案中,我找不到任何帮助我访问bricks.bricksId[0]
的问题。
要使
Brick
对象可索引,必须实现以下方法:__getitem__
__setitem__
__delitem__
你不需要所有的,只需要你用的。
然而,这似乎是一个
self.bricks
成为砖块而不是砖块列表的情况。砖块列表是可索引的;但是,除非实现上述方法,否则砖块本身是不可索引的。检查this以供参考。
为了能够在需要时调用
self.bricks.bricksId[number]
:相关问题 更多 >
编程相关推荐