2014-01-04 2 views
0

У меня есть класс в Python 3. Я использую на нем операции поиска вперед, и поэтому вам нужно создать новый объект класса, идентичный мне текущему экземпляру, чтобы текущий объект не получал изменилось.Указатели и классы в Python 3

настоящее время у меня этот код:

board_copy = Board() 
board_copy.data = [x[:] for x in self.data] 

Это создает указатель на исходные данные, а не копировать его; поэтому данные все равно изменяются. Я попытался это:

import copy 

board_copy = copy.deepcopy(self.data) 

теперь я получаю эту ошибку: AttributeError: «модуль» объект не имеет атрибута «deep_copy»

Я сделал много поисков и был в состоянии получить это далеко из-за бывших SO сообщений и документации Python, но я не могу найти это решение для этой конкретной проблемы в любом месте. Любые советы будут приветствоваться.

+4

Он должен быть 'copy.deepcopy'. – iCodez

+0

Так это работает сейчас? –

+0

Спасибо. Я попробую это. – Hosch250

ответ

2

Я мог бы также ответить на этот вопрос для любых будущих посетителей этой страницы.

Функция вы хотите copy.deepcopy, не copy.deep_copy:

>>> import copy 
>>> copy.deepcopy 
<function deepcopy at 0x01BAEE30> 
>>> 
Смежные вопросы