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