Итерационная версия глубокой копии Python - PullRequest
4 голосов
/ 06 марта 2009

Существует ли существующая реализация итеративной версии Deepcopy для Python 2.5.2? Метод Deepcopy, доступный в модуле копирования, является рекурсивным и не работает на больших деревьях. Я не в том положении, когда мы можем безопасно увеличить лимит стека во время выполнения.

EDIT

Я отследил это:

http://code.activestate.com/recipes/302535/

Я не проверял это, но похоже, что у него есть потенциал.

Ответы [ 2 ]

1 голос
/ 06 марта 2009

Я не уверен, что это имело бы смысл. Разве не смысл deepcopy в том, что каждый объект попросит своих детей скопировать себя?

Предположительно, вы точно знаете, какой тип объекта вы копируете и как выглядят его дочерние элементы, поэтому на вашем месте я бы просто написал свою собственную функцию для его копирования. Не должно быть слишком сложно.

0 голосов
/ 06 марта 2009

Может быть, так будет работать с Stackless Python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...