python 类定义 垃圾_什么是python对象摧毁?python中的对象摧毁(垃圾回收)机制是什么?...

在这篇文章之中我们来了解一下python对象摧毁(垃圾回收),对于刚刚接触到python这一编程语言的朋友来说,对于python对象摧毁(垃圾回收)的了解应该比较少,并且不清楚关于python垃圾回收这一方面的知识。不过没关系,在接下来的文章之中我们就来了解一下python对象摧毁(垃圾回收)方面的知识,以及python中的垃圾回收机制。

python对象摧毁(垃圾回收)

Python 使用了引用计数这一简单技术来跟踪和回收垃圾。

在 Python 内部记录着所有使用中的对象各有多少引用。

一个内部跟踪变量,称为一个引用计数器。

当对象被创建时, 就创建了一个引用计数, 当这个对象不再需要时, 也就是说, 这个对象的引用计数变为0 时, 它被垃圾回收。但是回收不是"立即"的, 由解释器在适当的时机,将垃圾对象占用的内存空间回收。a = 40 # 创建对象 <40>

b = a # 增加引用, <40> 的计数

c = [b] # 增加引用. <40> 的计数

del a # 减少引用 <40> 的计数

b = 100 # 减少引用 <40> 的计数

c[0] = -1 # 减少引用 <40> 的计数

垃圾回收机制不仅针对引用计数为0的对象,同样也可以处理循环引用的情况。循环引用指的是,两个对象相互引用,但是没有其他变量引用他们。

这种情况下,仅使用引用计数是不够的。Python 的垃圾收集器实际上是一个引用计数器和一个循环垃圾收集器。作为引用计数的补充, 垃圾收集器也会留心被分配的总量很大(及未通过引用计数销毁的那些)的对象。 在这种情况下, 解释器会暂停下来, 试图清理所有未引用的循环。

实例分析

析构函数 __del__ ,__del__在对象销毁的时候被调用,当对象不再被使用时,__del__方法运行:# !/usr/bin/python

# -*- coding: UTF-8 -*-

class Point:

def __init__(self, x=0, y=0):

self.x = x

self.y = y

def __del__(self):

class_name = self.__class__.__name__

print class_name, "销毁"

pt1 = Point()

pt2 = pt1

pt3 = pt1

print id(pt1), id(pt2), id(pt3) # 打印对象的id

del pt1

del pt2

del pt3

以上实例运行结果如下:3083401324 3083401324 3083401324Point 销毁

(注意:通常你需要在单独的文件中定义一个类,)

以上就是本篇文章所讲述的所有内容,这篇文章主要介绍了python对象摧毁(垃圾回收)方面的知识。希望你能借助资料从而理解上述所说的内容以及所举的实例。希望我在这片文章所讲述的内容能够对你有所帮助,让你学习python更加轻松。

更多相关知识,请访问php中文网Python教程栏目。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521967.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql图片字符集_MySQL字符集介绍及配置

1.MySQL编码集查看MySQL支持的字符集mysql> show character set;查看MySQL当前的字符集mysql> show variables like character%;------------------------------------------------------| Variable_name | Value |----------------------------------------------------…

新功能:阿里云负载均衡SLB支持HTTP访问强制跳转HTTPS

摘要&#xff1a; 很高兴的告诉大家&#xff0c;阿里云负载均衡SLB已经在澳大利亚&#xff08;悉尼&#xff09;、日本&#xff08;东京&#xff09;、阿联酋&#xff08;迪拜&#xff09;、美国 &#xff08;弗吉尼亚&#xff09;、美国&#xff08;硅谷&#xff09;、马来西亚…

算法一看就懂之「 堆栈 」

戳蓝字“CSDN云计算”关注我们哦&#xff01;今天咱们再来继续看看「 堆栈 」吧&#xff0c;我写技术文章很少 show code&#xff0c;所以经常有人吐槽。好吧&#xff0c;这个算法系列的文章我打算每一篇的结尾处都找一道算法题写出代码示例&#xff0c;这总可以了吧。一、「 堆…

Centos/Red Hat7.9 源码和在线yum 安装 vsftpd

文章目录一、版本简述1. 环境介绍2. 常用命令二、源码下载2.1. 官网链接2.2. 下载方式2.3. 检查2.4. 源码安装2.5. 异常处理2.6. 检查是否安装成功一、版本简述 1. 环境介绍 软件系统版本Red Hat Enterprise Linux Server7.9 (Maipo)CentOS Linux release 7.9(Core)jdk1.8.0_…

阿里云黄海宇:窄带高清2.0——让直播更惊艳的魔术

摘要&#xff1a; 2018年4月11-12日&#xff0c;2018亚太CDN峰会在北京隆重召开&#xff0c;大会由亚太CDN领袖论坛、电视云论坛、短视频论坛、视频云论坛、新技术论坛、运营商论坛、国际云论坛等7大部分组成。在视频云论坛上&#xff0c;阿里云视频云高级算法专家黄海宇作了题…

vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法

原vsftpd服务器的系统从centos6.8升级到centos7.2。vsftpd使用yum方式安装&#xff0c;用户采用系统用户登录。由于系统升级到centos7&#xff0c;yum安装的vsftpd版本改变。因此按centos6的设置&#xff0c;登录时报错。配置文件未修改&#xff0c;主要是修改了ftp的主目录权限…

学Python后到底能干什么?网友:我太难了

感觉全世界营销文都在推Python&#xff0c;但是找不到工作的话&#xff0c;又有哪个机构会站出来给我推荐工作&#xff1f;笔者冷静分析多方数据&#xff0c;想跟大家说&#xff1a;关于超越老牌霸主Java&#xff0c;过去几年间Python一直都被寄予厚望。但是事实是虽然上升趋势…

基于PCDN技术的无延时直播方案

摘要&#xff1a; 2018亚太CDN峰会在北京隆重召开&#xff0c;在4月12日上午的运营商论坛中&#xff0c;阿里云边缘计算团队高级技术专家张士波进行了《基于PCDN技术的无延时直播方案》的主题演讲。本文为演讲内容。当大家谈到直播&#xff0c;一般很惊讶于直播近几年来发展的规…

mysql naivcat执行存储过程_mysql使用navicat编写调用存储过程

在Navicat里面&#xff0c;找到函数&#xff0c;右键&#xff0c;新建函数&#xff0c;选择过程&#xff0c;如果有参数就填写函数&#xff0c;如果没有就直接点击完成在BEGIN......END中间编写要执行的sql语句&#xff0c;例如下面存储过程取名为pro_data_bak:BEGIN/*把rd01_d…

python教程简书_Python快速教程

配到python源码实例学习更佳:http://www.eyesourcecode.com/f/Python/1作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei 欢迎转载&#xff0c;也请保留这段声明。谢谢&#xff01;怎么能快速地掌握Python&#xff1f;这是和朋友闲聊时谈起的问题。Python包…

VSFTPD Centos 7.6 _配置篇

接上一篇&#xff1a;企业内部&#xff09;Centos7.6 源码安装vsftpd https://gblfy.blog.csdn.net/article/details/103491052 文章目录一、常用命令二、 需求案例三、思路分析3.1. 创建用户3.2. 配置3.3. 限制用户活动范围四、coding实战4.1. 家目录调整4.2. 为test设置密码4…

阿里云弹性计算负责人蒋林泉:亿级场景驱动的技术自研之路

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 刘丹出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;近年来随着云计算如火如荼的发展&#xff0c;上云已经成为当前企业的必经路径。但在国内良莠不齐的云服务市场下&#xff0c;云服务器的选型评估长期困…

阿里云容器Kubernetes监控(一) - 资源监控

摘要&#xff1a; 容器通过集装箱式的编译、打包、部署&#xff0c;大大提高了应用的迭代速度。对于架构师而言&#xff0c;容器带来的是分钟级的部署、秒级的伸缩与恢复、一个量级的迭代速度提升、50%左右的基础成本节省。简介容器通过集装箱式的编译、打包、部署&#xff0c…

不用python爬今日头条_手把手教你从今日头条爬取你想要的任何图片

都说人生苦短&#xff0c;我用python。为了找点乐趣&#xff0c;不如写个爬虫&#xff1f;那爬什么呢&#xff1f;宇宙条是爬虫界行家&#xff0c;它的很多信息都是从其它网站爬来的&#xff0c;那就拿它练练手吧。网上类似的文章其实不少&#xff0c;但是大多是很久之前的&…

Kubernetes之路 3 - 解决服务依赖

摘要&#xff1a; 在容器服务的客户群中&#xff0c;一个经常被问起的问题就是如何处理服务间依赖。本文介绍了常见的解决方法来实现服务的依赖检查&#xff0c;还进一步用示例展示了如何利用init container&#xff0c; liveness/readiness探针等技术实现服务健康检查&#xf…

java并发访问_Java并发访问

1 线程安全线程安全就是多线程访问时&#xff0c;采用了加锁机制&#xff0c;当一个线程访问该类的某个数据时&#xff0c;进行保护&#xff0c;其他线程不能进行访问直到该线程读取完&#xff0c;其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据…

3行代码实现ftp 上传、下载、删除操作集合

为了帮助小伙伴们便捷操作ftp&#xff0c;现对常用的上传、下载、删除功能进行封装&#xff0c;小伙伴只需要传入需要的参数操作即可&#xff01;告诉小伙伴好消息&#xff0c;本项目我已开源&#xff0c;大家可以根据需要克隆run起来&#xff01;&#xff01;&#xff01; 文章…

Logtail从入门到精通(一):日志采集杂谈

摘要&#xff1a; 目前logtail已承载阿里云全站、所有云产品服务、全球各Region部署、阿里巴巴集团&#xff08;淘宝、天猫、菜鸟等&#xff09;上重要服务的数据采集。每天采集接近百万服务器上数PB的实时数据&#xff0c;对接数千个应用与消费者。什么是日志提到日志&#xf…

互联网大佬马老师于昨日教师节正式卸任,让位现任CEO张勇;华为发布新一代CloudLink视讯解决方案,普惠4K+AI;联通……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go OPPO Reno2正式发布&#xf…

python输出不重复的单词_Python情感分析(比较单词时,不计算文本中重复的单词)...

您可以使用嵌套的for loop来实现这一点&#xff0c;但是这并不是解决简单问题的好方法&#xff1a;for posWord in posWords:for test in readFile:if i test:counter 1print iprint(counter)这并不是分析情绪的有效方法&#xff0c;相反&#xff0c;你只是在检查文本中是否存…