以下不會導致兩次釋放記憶體的問題嗎?為什么python3已經被程式員銷毀了一個物件?
class Example:
# Initializing
def __init__(self):
print('object created.')
# Deleting (Calling destructor)
def __del__(self):
print('Destructor called, object deleted.')
obj = Example()
obj.__del__()
輸出:
object created.
Destructor called, object deleted.
Destructor called, object deleted.
uj5u.com熱心網友回復:
通過呼叫__del__(),您只是在實體上呼叫一個方法,沒有任何特殊含義。
該__del__()方法,無論是你的還是默認的,都完全沒有任何作用。此外,它不是解構式,而是終結器:
當實體即將被銷毀時呼叫。這也稱為終結器或(不正確的)解構式。
Python 的記憶體分配完全是內部的。Python 中唯一的弱保證是,如果一個方法__del__()存在,它將在物件從記憶體中洗掉之前被呼叫。如果物件被復活,它甚至可能在某些情況下被呼叫兩次或三次,或者在守護執行緒的情況下根本不被呼叫。
有關更多資訊,請閱讀檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/442516.html
標籤:Python python-3.x 班级 目的 析构函数
