1. 程式人生 > >Python3中__del__"魔法"方法理解

Python3中__del__"魔法"方法理解

Python3中__del__方法:

   在定義的類中存在__del__方法時,當類被刪除的時候,程式會自動執行__del__當中的程式碼(正好與__init__方法相反).

   值得注意的地方是,要明白什麼時候才是真正刪除了類.

程式碼:

    
class Hero:
    def __del__(self):
        print("英雄已陣亡")
    
man1 = Hero()
man2 = man1
del man1
del man2
print("程式執行完畢")
    執行結果:
英雄已陣亡
程式執行完畢
這裡要注意,程式碼中指向類的有兩個,分別是man1和man2,當刪除man1時,Hero()類並沒有真正的刪除掉,當把man2也刪除後,指向Hero類的指標為0,此時才真正刪除了Hero類.可以對比一下兩個程式碼執行的結果.
class Hero:
    def __del__(self):
        print("英雄已陣亡")

man1 = Hero()
man2 = man1
del man1
print("程式執行完畢")
執行結果:
程式執行完畢
英雄已陣亡
對比兩段程式碼,更易懂

                                                                                                                 --KAI

相關推薦

Python3__del__"魔法"方法理解

Python3中__del__方法:   在定義的類中存在__del__方法時,當類被刪除的時候,程式會自動執行__del__當中的程式碼(正好與__init__方法相反).   值得注意的地方是,要明白什麼時候才是真正刪除了類.程式碼:    class Hero:

Python3__str__ "魔法"方法理解

Python3中只要類中的方法名格式為:__方法名__ 都是為特殊的方法,可以稱為"魔法"方法當我們在程式碼中呼叫了print(類),就會呼叫__str__方法裡面的值例如如下程式碼:class Cat: """定義一個Cat類""" #初始化物件 d

Python3對Dic方法小結

python]dictionary方法說明     Operation

python魔法方法及屬性

這裡介紹一些比較常用的魔法方法: a.何為魔法屬性? 魔法屬性和魔法方法是python內建的一些屬性和方法。代表著特殊意義, 命名時會在前後加兩個下劃線,在執行特定的操作時,系統會自動呼叫 1.__doc__魔法方法:表

(轉)關於python3staticmethod(靜態方法)classmethod(類方法)例項方法的聯絡和區別

原文:http://dmcoders.com/2017/08/30/pythonclass/ https://zhuanlan.zhihu.com/p/28010894------正確理解Python中的 @[email protected]方法 https://blog.csdn.net/jy

python__del__使用方法

建立物件後,python直譯器預設呼叫__init__()方法。當刪除一個物件時,python直譯器也會預設呼叫一個方法,這個方法為__del__()方法。在python中,對於開發者來說很少會直接銷

Python3的私有方法及其呼叫方法

Python3中的私有方法:如果在一個方法前面加兩個下劃線,則此方法會變為私有方法,私有方法不能直接呼叫,必須構造另一個函式來呼叫私有方法,私有方法的作用就是在開發的過程中保護核心程式碼。如:class Dog(): def __send_message(self)

__del__魔法方法

class C:         count = 0                  def __init__(self):                 C.count += 1         def __del__(self):                C.

Python魔法方法(Magical Methond)

在python中,魔法方法是一種可以給類增加魔力的特殊方法,他們被雙下橫線所包圍,他們是面向物件的python的一切。python中的魔法方法可以在類定義的時候使用,如果你的物件實現或者過載了這些方法中的某一個,那麼這個方法會在特殊的時候被python所呼叫,在這個時候,你可

Python3的__new__()方法

class Dog(object): def __init__(self): print("----init方法-----") def __del__(self): print("----del方法-----") d

Python3urllib詳細使用方法(header,代理,超時,認證,異常處理)

com creat exc 最簡 new cond nag bin read python3 抓取網頁資源的 N 種方法 1、最簡單 import urllib.requestresponse = urllib.request.urlopen(‘http://pyth

python3 encode 和decode的使用方法

這就是 得到 網絡 code 報錯 方式 left 定義 () 編碼:   將文本轉換成字節流的過程。即Unicode----------->特定格式的編碼方式,產生特定的字節流保存在硬盤中(一般為utf-8格式)。 解碼:   將硬盤中的字節流轉換成文本的過程。即特

深入理解jQuery的each方法

foreach 參數 回調 jquery function 默認 break font ++ 寫在前面 我們先回顧一下數組中的forEach方法吧。在數組的實例上有個forEach方法供所有實例使用,forEach裏面接收一個回調函數,而且回調函數默認接收三個參數:當前項

Python3 魔法方法:屬性訪問

獲取 attr super() 父類 有關 self val color def 1、與屬性訪問有關的魔法方法 __getattr__(self,name) 定義當用戶試圖獲取某一不存在的屬性時的行為 __getattribute__(self,name) 定義當該

Python3 魔法方法:定制序列

move 魔法方法 ini 定義 行為 color for log pre 1、基於序列的三大容器 分別是 列表、元組、字符串 2、協議 python中的協議更像是一種指南,例如鴨子類型,一只鳥像鴨子一樣走,像鴨子一樣叫,像鴨子一樣遊然後這只鳥就可以叫做鴨子 3、容

python3常用的列表方法(method)

答案 列表推導 復制對象 判斷 水仙花 素數 構造 改變 ted python3中常用的列表方法(method)詳見: >>> help(list) 文檔見: python_base_docs/list_xxxx.html 深拷貝和淺拷貝淺拷貝 shall

Python被雙下劃線包圍的魔法方法

按位異或 blog with pow ring 指定元素 運算 -c 描述   基本的魔法方法 __new__(cls[, ...]) 用來創建對象   1. __new__ 是在一個對象實例化的時候所調用的第一個方法   2. 它的第一個參數是這個類,其他的參數

python3reduce()函數的使用方法示例

map ons 參考 參數調用 情況下 RF ner class 看看吧 reduce() 函數會對參數序列中元素進行累積,下面這篇文章主要給大家介紹了關於python中reduce()函數的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考

python3 集合的常用方法

car 補集 pda pop 清空 super sym spa 移除 方法 意義S.add(e) 在集合中添加一個新的元素e;如果元素已經存在,則不添加S.remove(e) 從集合中刪除一個元素,如果元素不存在於集合中,則會產生一個KeyError錯誤S.discard(

Python3字符串的數字提取方法

lag none alc repl ota pre [1] total 一個 Python3中字符串中的數字提取方法 re.sub(pattern, repl, string, count=0, flags=0) 1 totalCount = '100abc&#