python物件導向 內建方法(魔術方法)

2021-10-01 16:12:44 字數 1159 閱讀 2659

魔術方法就是乙個類\物件中的方法,和普通方法唯一的不同是:普通方法需要呼叫,而魔術方法是在特定時刻自動觸發。

1、__init__

初始化方法

觸發時機:初始化物件時觸發(不是例項化觸發,但和例項化在乙個操作中)

引數:至少有乙個self,接收物件

返回值:無

作用:初始化物件的成員

注意:使用該方式初始化的成員都是直接寫入物件當中,類中無法具有

2、__new__

例項化方法

觸發時機:在例項化時觸發

引數:至少有乙個clsj接收當前類

返回值:必須返回乙個物件例項

作用:例項化物件

注意:例項化物件是object類底層實現,其他類繼承了object類的__new__才能夠實現例項化方法

3、__del__

析構方法

觸發時機:當物件沒有用(沒有任何變數引用)的時候觸發

引數:乙個self

返回值:無

作用:使用完物件後**資源

注意:del不一定會觸發當前方法,只有當前物件沒有任何變數接收時才會觸發

#1、物件賦值

p = person(

)p1 = p

#2、刪除位址的引用

del p1

#3、檢視對位址的引用次數

import sys

sys.getrefcount(p)

#4、當一塊空間(物件)沒有了任何引用,預設執行__del__

4、__str__

print例項時列印出來的內容,不定義可以呼叫,重新定義後則可以定製列印內容

5、__cal__

呼叫物件的魔術方法

觸發時機:將物件當做函式呼叫時觸發 物件()

引數:至少乙個self接收物件,其餘根據呼叫時的引數決定。

返回值:根據自定義的情況而定

python 物件導向的內建方法

要求 了解即可,能用最好 1.print obj str obj s obj 都呼叫obj.str 方法,若類中沒有找 repr 方法,若沒有找父類的 str 方法,若沒有找 repr 方法,直到object 2.r obj repr obj 都呼叫obj.repr 方法,若類中沒有找到 repr ...

物件導向內建方法

判斷obj是否是cls類的物件 例 li 1,2,3,4 def run list li for i in li if isinstance i,list run list i else print i run list li 判斷sub是否是super的派生類通過字串的形式操作物件的相關屬性 1 ...

Python 物件導向程式設計 內建類方法

說明 init self,初始化物件,在建立新物件時呼叫 del self 釋放物件,在物件被刪除之前呼叫 new cls,args,kwd 例項的生成操作 str self 在使用print語句時被呼叫 getitem self,key 獲取序列的索引key對應的值,等價於seq key len ...