我想知道:当返回字典时,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