python裡的魔法方法1(構造與析構)
魔法方法——構造與析構
1、python程式設計的魔法方法:
(1)魔法方法總是被雙下劃線包圍,例如__init__;
(2)魔法方法是面向物件的python的一切。
2、__new__(class[,…])魔法方法
主要用來重新修改和對於實際類()裡面所帶引數的修改,__new__ 方法主要任務是返回一個例項物件,通常是引數 cls 這個類的例項化物件,當然你也可以返回其他物件。
3、__del__(self)
當做垃圾回收裝置,不是在發生del操作時它會呼叫,只有當所有的物件的引用被del之後才會呼叫del方法。
舉例如下:
4、例項訓練:
定義一個類繼承於 int 型別,並實現一個特殊功能:當傳入的引數是字串的時候,返回該字串中所有字元的 ASCII 碼的和(使用 ord() 獲得一個字元的 ASCII 碼值)。
class Nint(int):
def __new__(cls,int2):
int2=int2
if isinstance(int2,int) or isinstance(int2,float):
int2=int(int2)
else:
b=0
for i in range(len(int2)):
i2=int2[i]
b=ord(i2)+b
return b
return int.__new__(cls,int2)