从numpy数组中存储的对象中提取示例变量

uqdfh47h  于 2023-04-30  发布在  其他
关注(0)|答案(2)|浏览(158)

我正在尝试使用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])解决了我的问题。

u5rb5r59

u5rb5r591#

修复了问题:我打印了piece_board[y][x],它打印了:[<__main__.Piece object at 0x000001603C98AE90>]。我以前做过这个,但很笨,没有意识到这是一个列表。所以我现在有:piece_colour = Piece.return_color(piece_board[y][x][0])解决了我的问题。

v09wglhw

v09wglhw2#

return_color不是你对变量调用的函数。将变量作为函数的参数调用。
piece_colour = Piece.return_colour(piece_board[y][x])

相关问题