更改类对象Python的默认打印

2024-03-28 09:35:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类Board。在

class Board:
    # Initialize empty n x n board
    def __init__(self, n):
        self.board = [[0]*n for x in range(n)]
        self.size_n = n
    # ...

我希望能够使用默认的print(board_obj)函数打印此类的对象,以便得到以下输出:

^{pr2}$

我试过了,但它只打印了一行矩阵,我不想:

# Represent the class object as its board
def __repr__(self):
    return repr(self.board)

错误输出:

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

我也不希望使用下面这样的自定义类方法:

# Custom print
def print_board(self):
    for row in self.board:
        print row

Tags: inselfboardforsizeinitdefrange
2条回答

实现__str__方法以在默认情况下很好地打印某些内容。在

怎么样:

def __str__(self):
    return '\n'.join(map(repr, self.board))

您应该将__str__用于人类可读的版本,而{}用于明确的版本。在

相关问题 更多 >