我正在尝试使用PyGame。我有一个类:
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
我将对象存储在NumPy数组中,并试图从数组中提取它们,以计算对象在该位置的颜色:
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])
解决了我的问题。
2条答案
按热度按时间u5rb5r591#
修复了问题:我打印了
piece_board[y][x]
,它打印了:[<__main__.Piece object at 0x000001603C98AE90>]
。我以前做过这个,但很笨,没有意识到这是一个列表。所以我现在有:piece_colour = Piece.return_color(piece_board[y][x][0])
解决了我的问题。v09wglhw2#
return_color不是你对变量调用的函数。将变量作为函数的参数调用。
piece_colour = Piece.return_colour(piece_board[y][x])