问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python中的delete函数是如何使用的?

发布网友 发布时间:2022-04-23 02:10

我来回答

1个回答

热心网友 时间:2022-04-06 06:57

我要纠正推荐答案中的说法!
del并不是用来“删除引用指向的内存空间”,python中的del和c++中的delete是完全两个概念,不要误人子弟。。

一般来讲,del是用来删除变量的引用的,例如a = 1; del a,这里a是对1这个值的引用(python中所有的变量都可视作引用),而del a就是删除这一引用关系,也就是说,1不再被a这个变量引用了,同时a这个变量名也从变量表中剔除了。

如果还是不太清楚,我举这个例子你就明白了:
a = object()
b = a
del a
print b
print a # 该句会报a未定义的异常
这段代码中,a引用了一个新对象object(),而b=a使得b也引用了这个对象,a和b虽然是两个变量,但它们引用的是同一个对象,有点类似于c++中的两个指针指向同一个对象。
而后面del a仅仅只是把a这个变量对object()的引用删掉了,同时a的变量名也失效了,但并不表示object()这个对象被删除了,它还在,并且b还引用着它呢。从后面print b能正常输出就可以看出这一点。

python的内存释放采用的是引用计数机制,也就是当一个对象没有任何引用它的变量了,那么它就会自动被释放,无需人工干预。

此外,del对于不同的对象也会有不同的功能,这取决于对象本身对__del__系统方法的实现。例如一个列表a = [1,2,3],del a[0]表示将列表的首项删除,此时a就变成[2,3]了。如果是自定义的对象,那del的功能更是可以定义成你想要的任何样子,详情请参考python帮助中的__del__词条。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? vivo手机字体有包边,怎么去掉? 魔兽世界里的插件是干什么的? python中这个remove方法怎么结果错了 python remove问题 python 中的remove函数问题 java 开发中插件有什么作用 vivo手机主题里的字体打不开怎么办 vivo手机如何修改字体大小? 魔兽世界插件是什么?有什么用?怎么用?什么插件好用? 插件是什么意思有什么用 vivo字体怎么调大小 什么是插件,作用是什么?什么情况需要用插件? 谢谢! 魔兽世界插件有什么作用? 什么叫插件干什么用的 vivo手机字体变成空心怎么办? 什么叫插件?有什么作用,等等其他的内容具体一点 ,谢谢 vivo手机怎么设置带拼音字体? 请问"插件"是什么意思?有什么作用? vivo怎么设置带拼音的手机字体? 插件的主要作用是什么?一般在什么时侯用到它?在观看视频时也说要安装插件,是什么意思?简单、通俗的回答就 Python 初学第四题 怎么写 Remove如何从后往前删? Flash插件的作用是什么 python中从列表中用for循环删除(remove方法)停用词特别慢,有快一点... Python中set集合中的remove和discard? 玩魔兽世界需要哪些插件?作用是神马? python for 语句中使用删除 什么是Flash插件,有什么作用吗 Python中的剥除函数 CAD插件主要功能有哪些? 百度音乐插件有什么作用? oppoa7手机怎么恢复出厂设置? Python中drop函数删除指定行报错? 魔兽世界的插件都有什么功能 python 用pycharm的IDE,list的remove 返回总是None 为什么呢? oppo手机恢复出厂设置后怎么还原以前的数据? python中remove "x not in list"怎么处理? remove和delete的区别 OPPO手机系统升级之后怎么恢复原来的系统? python集合的使用怎么样的? Python del 语句的用法是什么样?