Python 析构函数
当需要清理 Python 对象时调用析构函数。它基本上与构造函数的作用完全相反,用于反转构造函数执行的操作。析构函数主要用于组织程序并实现编码标准。
本教程演示了在 Python 中使用析构函数。
Python 中对析构函数的需求不像 C++ 等其他编程语言那样多,因为 Python 的垃圾收集器会自动处理内存管理。但是,Python 中确实存在析构函数,本文解释了它们的用法和功能。
我们使用 __del__()
函数作为 Python 中的析构函数。当程序员调用 __del__()
函数时,所有对象引用都会被删除,这称为垃圾收集。
析构函数的语法如下:
def __del__(self):
# Write destructor body here
在 Python 程序中使用析构函数的优点如下。
- 自动删除不必要的占用空间的对象,从而释放内存空间。
- 容易,因为它会自动调用。
以下代码使用 Python 中的析构函数。
class Fruits:
# Calling constructor
def __init__(self):
print("Fruits created.")
# Calling destructor
def __del__(self):
print("Destructor called, Fruits deleted.")
obj = Fruits()
del obj
上面的代码提供了以下输出:
Fruits created.
Destructor called, Fruits deleted.
上面的代码表明,在程序结束后或删除所有给定的对象引用时,析构函数已被调用。这意味着给定对象的引用计数值在一段时间后变为零,而不是在给定对象移出范围时。
这是另一个进一步解释析构函数的代码。
class Fruits:
def __del__(self):
print("Fruits deleted")
a = Fruits()
del a
a = Fruits()
b = a
del b
del a
在上面的代码中,定义了一个类 Fruits
,对象 a
是对该类的引用,而对象 b
是该引用 a
的本地副本。删除 b
时,不会调用该函数,因为它只保存本地副本而没有其他内容。
无论程序员使用哪种语言,构造函数和析构函数在编程世界中都是必不可少的。析构函数在垃圾收集中扮演着重要的角色。我们可能不会在小块代码中看到大的变化,但是在复杂的程序和生产级代码中,内存使用是一个很大的优先事项,析构函数的重要性非常明显。
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn