垃圾回收 | Python从入门到精通:高阶篇之三十五

简介: 在程序中没有被引用的对象就是垃圾,这种垃圾对象过多以后会影响到程序的运行的性能。所以我们必须进行及时的垃圾回收,所谓的垃圾回收就是讲垃圾对象从内存中删除。在Python中有自动的垃圾回收机制,它会自动将这些没有被引用的对象删除。

类中属性和方法 | Python从入门到精通:高阶篇之三十四

垃圾回收

就像我们生活中会产生垃圾一样,程序在运行过程当中也会产生垃圾。
程序运行过程中产生的垃圾会影响到程序的运行的运行性能,所以这些垃圾必须被及时清理。
什么是垃圾?
没用的东西就是垃圾。

class A:
    def __init__(self):
        self.name = 'A类'

a = A()

print(a.name)

input('回车键退出...')

执行结果:

image.png

添加代码:

a = None

将a设置为了None,此时没有任何的变量对A()对象进行引用,它就是变成了垃圾。

在程序中没有被引用的对象就是垃圾,这种垃圾对象过多以后会影响到程序的运行的性能。所以我们必须进行及时的垃圾回收,所谓的垃圾回收就是讲垃圾对象从内存中删除。

在Python中有自动的垃圾回收机制,它会自动将这些没有被引用的对象删除,所以我们不用手动处理垃圾回收。
init类似的还有del
del是一个特殊方法,它会在对象被垃圾回收前调用

    def __del__(self):
        print('A()对象被删除了~~~',self)

此时,若没有a = None,它的执行结果为:

image.png

如果存在a = None,a变成了垃圾,它的执行结果:

image.png

如果此时又使用一个变量b,来引用a对应的对象

b = a

执行结果为:

image.png

此时不会删除,因为有对象b的存在。
若添加b = None,则执行结果为:

image.png

若直接执行del a,执行结果为:

image.png

此时不会执行,是因为del直接删除的是变量a,并没有删除对象,有变量b的存在。
若也执行del b,则会出现:

image.png

我们针对整体代码来说明一下input,代码最后一行的input指令用来接收一条用户输入,在用户输入数据前运行尚未中止,变量b未被销毁,而在用户输入完成后,系统运行结束,自动回收垃圾变量b。

配套视频课程,点击这里查看

获取更多资源请订阅Python学习站

相关文章
|
3天前
|
机器学习/深度学习 自然语言处理 语音技术
【Python 机器学习专栏】Python 深度学习入门:神经网络基础
【4月更文挑战第30天】本文介绍了Python在深度学习中应用于神经网络的基础知识,包括神经网络概念、基本结构、训练过程,以及Python中的深度学习库TensorFlow和PyTorch。通过示例展示了如何使用Python实现神经网络,并提及优化技巧如正则化和Dropout。最后,概述了神经网络在图像识别、语音识别和自然语言处理等领域的应用,并强调掌握这些知识对深度学习的重要性。随着技术进步,神经网络的应用将持续扩展,期待更多创新。
|
3天前
|
机器学习/深度学习 算法 数据挖掘
【Python 机器学习专栏】Python 机器学习入门:基础概念与流程
【4月更文挑战第30天】本文介绍了Python在机器学习中的重要性,机器学习的基础概念和分类,包括监督学习、非监督学习和强化学习。Python因其丰富的库(如Scikit-learn、TensorFlow、PyTorch)、简单易学的语法和跨平台性在机器学习领域广泛应用。文章还概述了机器学习的基本流程,包括数据收集、预处理、特征工程、模型训练与评估等,并列举了常用的Python机器学习算法,如线性回归、逻辑回归、决策树和支持向量机。最后,讨论了Python机器学习在金融、医疗、工业和商业等领域的应用,鼓励读者深入学习并实践这一技术。
|
5天前
|
Python
【Python21天学习挑战赛】-入门必备
【Python21天学习挑战赛】-入门必备
|
9天前
|
存储 Python
python入门指南
python入门指南
15 0
|
9天前
|
机器学习/深度学习 自然语言处理 算法
利用Python进行情感分析:从入门到实践
【4月更文挑战第24天】 在数字化时代,文本数据无处不在。理解这些文本背后的情绪倾向对于品牌管理、市场研究乃至政治分析都至关重要。本文将引导读者通过Python编程语言实现基本的情感分析任务,涵盖从预处理步骤到模型训练和结果解释的全过程。我们将使用流行的自然语言处理库NLTK和机器学习框架scikit-learn来构建一个简单的情感分析模型,并探索如何将其应用于实际场景中。
|
9天前
|
Python
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
|
9天前
|
存储 索引 Python
Python从入门到精通——1.3.1练习编写简单程序
Python从入门到精通——1.3.1练习编写简单程序
|
9天前
|
Python
Python从入门到精通——1.2.2学习基础语法和数据类型之控制结构
Python从入门到精通——1.2.2学习基础语法和数据类型之控制结构
|
9天前
|
机器学习/深度学习 存储 数据挖掘
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
|
9天前
|
机器学习/深度学习 人工智能 运维
Python从入门到精通:1.1.2了解Python基本概念与安装Python环境
Python从入门到精通:1.1.2了解Python基本概念与安装Python环境