Python 析构函数

Vaibhhav Khetarpal 2021年10月2日
Python 析构函数

当需要清理 Python 对象时调用析构函数。它基本上与构造函数的作用完全相反,用于反转构造函数执行的操作。析构函数主要用于组织程序并实现编码标准。

本教程演示了在 Python 中使用析构函数。

Python 中对析构函数的需求不像 C++ 等其他编程语言那样多,因为 Python 的垃圾收集器会自动处理内存管理。但是,Python 中确实存在析构函数,本文解释了它们的用法和功能。

我们使用 __del__() 函数作为 Python 中的析构函数。当程序员调用 __del__() 函数时,所有对象引用都会被删除,这称为垃圾收集。

析构函数的语法如下:

def __del__(self):
    # Write destructor body here

在 Python 程序中使用析构函数的优点如下。

  1. 自动删除不必要的占用空间的对象,从而释放内存空间。
  2. 容易,因为它会自动调用。

以下代码使用 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 Khetarpal avatar Vaibhhav Khetarpal avatar

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

相关文章 - Python Class