1. 程式人生 > >python裡的魔法方法1(構造與析構)

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)