Python类:追加一个列表&合并一个方法

Python类:追加一个列表&合并一个方法,python,class,chess,Python,Class,Chess,今天我刚开始学习Python类,我有一个简短的问题。我很惊讶它使我的代码变得更加简洁,但我正在试图弄清楚,对于我正在研究的一个国际象棋问题,下面的内容是否可行 1我可以从类方法中以某种方式附加列表吗?我试图找出是否有一种方法可以在每次调用capture时将片段累积到列表中 2如何从类中调用一个方法以用于另一个方法?我想能够检查一个动作是否有效,甚至在继续之前,如果作品应该尝试捕捉另一个动作或移动 class Piece(Board): def __init__(self, piece, r,

今天我刚开始学习Python类,我有一个简短的问题。我很惊讶它使我的代码变得更加简洁,但我正在试图弄清楚,对于我正在研究的一个国际象棋问题,下面的内容是否可行

1我可以从类方法中以某种方式附加列表吗?我试图找出是否有一种方法可以在每次调用capture时将片段累积到列表中

2如何从类中调用一个方法以用于另一个方法?我想能够检查一个动作是否有效,甚至在继续之前,如果作品应该尝试捕捉另一个动作或移动

class Piece(Board):

def __init__(self, piece, r, c):
    self.piece = piece
    self.r = r
    self.c = c
这是我想在下面的函数中加入的函数,以避免冗余问题2 这些功能目前是相同的。我想看看如何使用捕获函数来累积一个片段列表。问题1 一如既往地感谢您。

1。我可以从类方法中以某种方式附加列表吗

在类中创建一个列表-片段列表,用于存储片段:

class Piece(Board):
    def __init__(self, piece, r, c):
        self.piece = piece
        self.r = r
        self.c = c
        self.piecesList = [] #or init using some argument if you want to use some list from outside of the class
无论何时调用捕获方法,只需将片段附加到片段列表中:

二,。如何从类中调用一个方法以在另一个方法中使用

您可以简单地使用self.methodarg1、arg2…调用它:


太棒了-我现在沉迷于这些…真的很强大!谢谢
def capture(self,r,c, r_offset, c_offset): 

    piece = self.piece
    self.tgt_r, self.tgt_c = r+r_offset, c+c_offset 

    if self.tgt_r > 7 or self.tgt_c < 0:
            return None             
    else:
        nb = Board(curr).copy_board() #this board is just 8x8 np.array
        nb[self.tgt_r,self.tgt_c], nb[r,c] = piece,'-'  
    return nb

def move(self,r,c, r_offset, c_offset):

    piece = self.piece
    self.tgt_r, self.tgt_c = r+r_offset, c+c_offset 

    if self.tgt_r > 7 or self.tgt_c < 0:
        return None
    else:
        nb = Board(curr).copy_board()
        nb[self.tgt_r,self.tgt_c], nb[r,c] = piece,'-'  
    return nb
class Piece(Board):
    def __init__(self, piece, r, c):
        self.piece = piece
        self.r = r
        self.c = c
        self.piecesList = [] #or init using some argument if you want to use some list from outside of the class
def capture(self,r,c, r_offset, c_offset): 
    self.piecesList.append(self.piece)
    piece = self.piece
def capture(self,r,c, r_offset, c_offset): 

    piece = self.piece

    if self.valid_move(r,c,r_offset,c_offset) == False:
            return None             
    else:
        nb = Board(curr).copy_board() #this board is just 8x8 np.array
        nb[self.tgt_r,self.tgt_c], nb[r,c] = piece,'-'  
    return nb