TypeError: невозможно выполнить глубокое копирование этого объекта шаблона

Пытаюсь понять эту ошибку в моем классе "Variable".

Я надеялся сохранить sre.SRE_Pattern в моем классе «Variable». Я только начал копировать класс Variable и заметил, что это вызывает изменение всех экземпляров моего класса Variable. Теперь я понимаю, что мне нужно глубоко скопировать этот класс, но теперь я сталкиваюсь с «TypeError: не могу глубоко скопировать этот объект шаблона». Конечно, я могу сохранить шаблон в виде текстовой строки, но остальная часть моего кода уже ожидает скомпилированный шаблон! Как лучше всего скопировать мой класс Variable с помощью объекта шаблона?

import re
from copy import deepcopy

class VariableWithRE(object):
    "general variable class"
    def __init__(self,name,regexTarget,type):
        self.name = name
        self.regexTarget = re.compile(regexTarget, re.U|re.M) 
        self.type = type 

class VariableWithoutRE(object):
    "general variable class"
    def __init__(self,name,regexTarget,type):
        self.name = name
        self.regexTarget = regexTarget
        self.type = type 

if __name__ == "__main__":

    myVariable = VariableWithoutRE("myName","myRegexSearch","myType")
    myVariableCopy = deepcopy(myVariable)

    myVariable = VariableWithRE("myName","myRegexSearch","myType")
    myVariableCopy = deepcopy(myVariable)
15
задан Marcus Jones 8 June 2011 в 13:17
поделиться