試圖構建戰艦(拍攝我),我想在我的Board
類中的__str__
方法打印出一個字符串版本self.board
,這是一個列表清單。我在Board
類,使self.board
成爲一個很好的和漂亮的字符串make_printable()
方法。Python:我的__str__方法不打印更新列表
但是,如果在遊戲中更新了self.board
的一個實例以反映船舶放置,則__str__
不會顯示更新的self.board
。任何想法這裏發生了什麼?
class Board:
"""Docstring for class Board"""
def __init__(self):
self.board = [[EMPTY] * len(range(BOARD_SIZE)) for number in range(BOARD_SIZE)]
self.columns = " " + " ".join([chr(c) for c in range(ord('A'), ord('A') + BOARD_SIZE)])
self.rows = '\n'.join(self.make_printable(self.board))
def make_printable(self, board):
myobj = enumerate(self.board, start=1)
output = []
for index, value in myobj:
output.append(' {:<2} {}'.format(index, ' '.join(value)))
return output
def __str__(self):
return self.columns + '\n' + self.rows
爲什麼會'__str__'顯示'self.board'如果只使用'self.columns'和'self.rows'?你的'__str__'方法甚至不會使用你的'make_printable'方法 – CoryKramer
歡迎來到StackOverflow。請閱讀並遵守幫助文檔中的發佈準則。 [最小,完整,可驗證的示例](http://stackoverflow.com/help/mcve)適用於此處。在發佈您的MCVE代碼並準確描述問題之前,我們無法爲您提供有效的幫助。您發佈的代碼只是一個類定義,沒有驅動程序來說明問題。 – Prune
不'self.rows'限定如'__init__'包含的'make_printable()'結果? – empathyattack