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