Python中文
首页
教程
问答
标签
搜索
登录
注册
类型错误:无法深入复制此模式对象
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>试图在我的“变量”类中理解这个错误。</p> <p>我希望在我的“Variable”类中存储sre.sre_模式。我刚开始复制Variable类,注意到它导致了我所有的Variable类实例的更改。我现在知道我需要deepcopy这个类,但是现在我遇到了“TypeError:cannotdeepcopythispatterobject”。当然,我可以将该模式存储为文本字符串,但我的其余代码已经需要编译的模式!用模式对象复制变量类的最佳方法是什么?</p> <pre><code>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) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>这可以通过修补3.7版python中的<code>copy</code>模块来解决:</p> <pre><code>import copy import re copy._deepcopy_dispatch[type(re.compile(''))] = lambda r, _: r o = re.compile('foo') assert copy.deepcopy(o) == o </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
7 回答
如何添加表示整数的擦边字符串?
8 回答
如何添加要在Bokeh中使用的新font.ttf文件?
1 回答
如何添加要显示的矩阵XY轴编号和XY轴
7 回答
如何添加计数?
7 回答
如何添加计数器函数?
6 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
4 回答
如何添加计数器来跟踪while循环中的月份和年份?
9 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
8 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
6 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
10 回答
如何添加评论拉梅尔亚姆
3 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
6 回答
如何添加谷歌地点自动完成到Flask?
10 回答
如何添加超时、python discord bot
5 回答
如何添加超过1dp的检查
3 回答
如何添加距离方法
1 回答
如何添加跟随游戏的敌人精灵
2 回答
如何添加路径以便python可以找到程序?
7 回答
如何添加身份验证/安全性以使用happybase访问HBase?
2 回答