尝试理解我“Variable”类中的错误。
我希望在我的“Variable”类中存储sre.SRE_Pattern。我刚开始复制Variable类并注意到它会导致所有Variable类实例发生变化。我现在知道我需要深拷贝(deepcopy)这个类,但现在我遇到了“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)
deepcopy()
如何处理特定类型(但请注意,如果需要,你可以向内置类型添加属性)。 - Jan Hudec