python新式類建構函式注意事項

2021-10-12 19:39:02 字數 732 閱讀 8444

1.不要使用空列表作為關鍵字引數的預設值。

classa(

object):

def__init__

(self, em_list=

):self.s = em_list

defadd(self, a)

:a = a(

)b = a(

)a.add(

's')

b.s

這段**執行中,在a和b例項化的時候,建構函式的空列表在記憶體中指向同乙個區域。因此a和b的物件屬性s其實指向了同乙個空列表。

雖然不知道為什麼在初始化的過程中如果傳入乙個空列表,系統會指向同乙個,但是這種問題需要避免。

python 新式類和舊式類

python的新式類是2.2版本引進來的,我們可以將之前的類叫做經典類或者舊類。為什麼要在2.2中引進new style class呢?官方給的解釋是 為了統一類 class 和型別 type 在2.2之前,比如2.1版本中,類和型別是不同的,如a是classa的乙個例項,那麼a.class 返回 ...

python 新式類和舊式類

新式類和舊式類 python的新式類是2.2版本引進來的,我們可以將之前的類叫做經典類或者舊類。為什麼要在2.2中引進new style class呢?官方給的解釋是 為了統一類 class 和型別 type 在2.2之前,比如2.1版本中,類和型別是不同的,如a是classa的乙個例項,那麼a.c...

python 新式類和舊式類

python的新式類是2.2版本引進來的,我們可以將之前的類叫做經典類或者舊類。為什麼要在2.2中引進new style class呢?官方給的解釋是 為了統一類 class 和型別 type 在2.2之前,比如2.1版本中,類和型別是不同的,如a是classa的乙個例項,那麼a.class 返回 ...