PyGame开发围棋:从NumPy数组提取Piece对象属性报错解决
问题描述
我正在使用PyGame开发围棋程序,定义了如下Piece类:
class Piece(): def __init__(self,pos,colour): global circle super().__init__() self.show_colour = colour circle = pg.draw.circle(screen,color,(pos[0],pos[1]),20) def return_colour(self): return self.show_colour
将Piece对象存储在NumPy数组piece_board中,尝试通过piece_colour = piece_board[y][x].return_colour()提取该位置对象的颜色属性时,出现错误:
AttributeError: 'list' object has no attribute 'return_color'
我此前从未使用过类,怀疑是类的使用方式有误,尝试先获取对象再调用方法:
piece_type = piece_board[y][x] piece_color = piece_type.return_color()
但仍出现相同错误。由于对类不太熟悉,不确定如何修改;尝试修改数组默认元素类型也未解决问题。
问题解决
打印piece_board[y][x]得到结果:[<__main__.Piece object at 0x000001603C98AE90>],才意识到该元素是一个列表。使用piece_colour = Piece.return_color(piece_board[y][x][0])后问题解决。
内容的提问来源于stack exchange,提问作者MORaHo
相关产品推荐
相关产品推荐

