我有一个班级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)
函数打印此类的对象,以便获得此输出:
[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]
我尝试了这个,但它将矩阵打印在一行中,我不想要:
# 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
答案 0 :(得分:2)
怎么样:
def __str__(self):
return '\n'.join(map(repr, self.board))
您应该使用__str__
作为人类可读的版本,将__repr__
作为不明显的版本。
答案 1 :(得分:-1)
默认情况下,实现__str__
方法可以很好地打印。