繁体   English   中英

从功能返回列表后,为什么列表变为空?

[英]Why does list become empty after returning it from function?

从类方法返回元组列表时,返回的列表为空。

我试过在返回列表之前(在这里,它包含所有元组)以及在调用方接收到它之后(在这里,所有元组都消失了),将列表打印到sys.stderr。 我也尝试过将数据类型更改为元组的元组,但是问题仍然存在。 我已仔细检查过,以便返回正确的变量。 没有类似的变量名,但是我也曾尝试更改变量名而没有成功。

我正在Codeingame的环境中在Python 3上运行代码。 这是我正在编码的特定挑战: https : //www.codingame.com/ide/puzzle/tic-tac-toe

class Boardstate:
    def get_valid_moves(self):
        valid_moves = []
        for row in range(3):
            for col in range(3):
                sq = self.squares[row][col]
                sq_valid_moves = [
                    (row*3 + j, col*3 + i) for (j, i) in sq.get_valid_moves()
                ]
                valid_moves.extend(sq_valid_moves)
        print(valid_moves, file=sys.stderr)
        return valid_moves

valid_moves = temp_state.get_valid_moves() #temp_state is an instance of Boardstate
print(valid_moves, file=sys.stderr)

我希望在类方法外看到与在返回之前相同的元组列表。

尝试将self添加到valid_moves中,如下所示:

class Boardstate:
    def get_valid_moves(self):
        self.valid_moves = []
        for row in range(3):
            for col in range(3):
                sq = self.squares[row][col]
                sq_valid_moves = [
                    (row*3 + j, col*3 + i) for (j, i) in sq.get_valid_moves()
                ]
                self.valid_moves.extend(sq_valid_moves)
        print(self.valid_moves, file=sys.stderr)
        return self.valid_moves

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM