Позволяет определить действие при глубоком копировании экземпляра.
object.__deepcopy__(self, memo)
-> копия экземпляра
self -- Ссылка на экземпляр.

memo -- Словарь для реконструкции графа объектов.

Данный метод позволяет переопределить поведение при попытке применения функции deepcopy() из модуля copy, производящей глубокое копирование, к экземпляру класса.

Внимание
Реализация должна создавать глубокую копию объекта. Для этого ей следует вызвать copy.deepcopy(), где первый аргумент — это сам объект, а второй — словарь для реконструкции графов сложных объектов (словарь должен хранить соотношения идентификаторов объектов к объектам-копиям).

    from copy import deepcopy


class MyClass:

def __init__(self):
# Допустим в some_attr сложный объект, включающий в себя другие объекты.
self.some_attr = ...

def __deepcopy__(self, memo):
print('deep copying ...')
my_copy = type(self)()
memo[id(self)] = my_copy
my_copy.some_attr = deepcopy(self.some_attr, memo)
return my_copy


my_object = MyClass()
my_object_copy = deepcopy(my_object) # deep copying ...

Синонимы поиска: object.__deepcopy__, object, __deepcopy__
На заметку
У нас есть представительство в Facebook. Ссылка в самом низу страницы.