python中copy.deepcopy_Python eval

python中copy.deepcopy_Python eval仅出于教育目的,我尝试实现copy.deepcopy()的克隆函数。在在玩了一番代码并在谷歌上搜索之后,我想出了以下函数:defmy_deepcopy(data):ifisinstance(data,dict):result={}forkey,valueindata.items():result[key]=my_deepcopy(value)assertid(result)…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

仅出于教育目的,我尝试实现copy.deepcopy()的克隆函数。在

在玩了一番代码并在谷歌上搜索之后,我想出了以下函数:def my_deepcopy(data):

if isinstance(data, dict):

result = {}

for key, value in data.items():

result[key] = my_deepcopy(value)

assert id(result) != id(data)

elif isinstance(data, list):

result = []

for item in data:

result.append(my_deepcopy(item))

assert id(result) != id(data)

elif isinstance(data, tuple):

aux = []

for item in data:

aux.append(my_deepcopy(item))

result = tuple(aux)

assert id(result) != id(data)

elif isinstance(data, (int, float, type(None), str, bool)):

result = data

else:

raise ValueError(“unexpected type”)

return result

似乎可以使用所有Python原语类型及其组合:

^{pr2}$

到目前为止,还不错,但是Arbitrary Types呢?如何复制任意对象的实例?我如何检测到它?任意类型是否有任何类型的复制构造函数?在

我的函数中缺少什么可以使以下代码正常工作:class Xpto:

pass

arbitrary = [ Xpto(), Xpto() ]

my_deepcopy( arbitrary ) #ValueError(“unexpected type”)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189058.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • FCN—tensorflow版本代码超详解

    FCN—tensorflow版本代码超详解FCN—tensorflow版本代码详解

    2022年8月30日
    2
  • 简述Python垃圾回收机制「建议收藏」

    简述Python垃圾回收机制「建议收藏」引言许多高级语言都具有自己的垃圾回收机制,以管理计算机内存,Python也不例外。对于垃圾回收机制的了解程度,成了开发人员是否真正了解Python的检验手段,在面试的时候许多面试官也喜欢以此作为题目考察面试者Garbagecollection(GC)概述现在的高级语言如java,c#等,都采用了垃圾回收机制,而不再是c,c++里用户自己管理维护内存的方式。自己管理内存极其自由,可…

    2022年6月15日
    25
  • 【图像处理】计算Haar特征个数

    【图像处理】计算Haar特征个数最早的Haar特征由PapageorgiouC.等提出(《Ageneralframeworkforobjectdetection》),后来PaulViola和MichalJones提出利用积分图像法快速计算Haar特征的方法(《Rapidobjectdetectionusingaboostedcascadeofsimplefeatures》)。之后,Raine

    2022年6月26日
    23
  • 《项目经理演讲与呈现技巧》总结

    《项目经理演讲与呈现技巧》总结

    2021年9月13日
    53
  • npm run build: rimraf: command not found

    npm run build: rimraf: command not found当出现以下构建失败的情况时:npmrunbuild>new-proj@0.0.1prebuil>rimrafdistsh:rimraf:commandnotfound可以先执行npminstallrimraf再执行npminstall再次构建npmrunbuild

    2025年8月6日
    2
  • 2-ip地址分类「建议收藏」

    2-ip地址分类「建议收藏」1.ip地址的种类  我们在学习计算机网络时知道,计算机网络一般根据网络大小分对网络进行分门别类:一般有局域网,广域网,城域网,互联网等。对于拥有大量结点的少部分网络,他们创建了A类网络这个等级。另一个极端情况是C类网络,它包括只拥有较少结点的众多网络。那么介于在A类和C类之间的网络就是B类网络了。2.ip地址分类  在早期为了适应大型,中型,小型等不同的网络,ip地址在设计出…

    2022年6月3日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号