Я понимаю разницу между copy и deepcopy копией в модуле копирования. Раньше copy.deepcopy успешно использовал copy.copy и copy.deepcopy, но это первый раз, когда я фактически перегрузил методы __copy__ и __deepcopy__. Я уже погуглил и просмотрел встроенные модули Python, чтобы найти экземпляры функций __copy__ и __deepcopy__ (например, sets.py, decimal.py и fractions.py), но я все еще не уверен на 100% Я правильно понял.
Вот мой сценарий:
У меня есть объект конфигурации. Первоначально я собираюсь создать экземпляр одного объекта конфигурации с набором значений по умолчанию. Эта конфигурация будет передана нескольким другим объектам (чтобы все объекты запускались с одинаковой конфигурацией). Однако после начала взаимодействия с пользователем каждый объект должен независимо настраивать свои конфигурации, не затрагивая конфигурации друг друга (что говорит мне, что мне нужно будет сделать глубокие копии моей начальной конфигурации для передачи).
Вот пример объекта:
class ChartConfig(object):
    def __init__(self):
        #Drawing properties (Booleans/strings)
        self.antialiased = None
        self.plot_style = None
        self.plot_title = None
        self.autoscale = None
        #X axis properties (strings/ints)
        self.xaxis_title = None
        self.xaxis_tick_rotation = None
        self.xaxis_tick_align = None
        #Y axis properties (strings/ints)
        self.yaxis_title = None
        self.yaxis_tick_rotation = None
        self.yaxis_tick_align = None
        #A list of non-primitive objects
        self.trace_configs = []
    def __copy__(self):
        pass
    def __deepcopy__(self, memo):
        pass 
  Как правильно реализовать методы copy и deepcopy для этого объекта, чтобы обеспечить правильное поведение copy.copy и copy.deepcopy?