我想知道:當返回字典時,python是否像JavaScript一樣行事?
def get_empty_cell():
return {'p': [[], []], 'h': {}, 'b': []}
def create_new_board(old_board):
height = len(old_board) + 4
width = len(old_board[0]) + 4
self.board = [None] * height
for i in range(0, height):
self.board[i] = [None] * width
for j in range(0, width):
# (!) deepcopy()
self.board[i][j] = copy.deepcopy(self.get_empty_cell())
我使用deepcopy的,因爲我已經在那裏不同的變量訪問相同的內容很多情況下。但是當Python返回類似於我的代碼的「新」字典時,如果我需要不同的單元格,還是像JavaScript一樣,是否需要使用copy.deepcopy
?
(和題外話:我敢肯定,我的代碼可以優化「Python的方式」 ......)
'get_empty_cell()'每次調用時都會返回一個新的字典。所以你不需要copy.deepcopy。我很確定這種行爲幾乎在所有編程語言中都很常見。 – ozgur