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 返回 ...