看板 Python 關於我們 聯絡資訊
class A: m_list = [2] m_number = 1 class B(A): def __init__ (self): self.m_number = A.m_number + 1 self.m_hi = 1 self.m_list = self.m_list[:] self.m_list.append(3) class C(A): def __init__ (self): print self.m_list if __name__ == '__main__': my_b = B() my_c = C() print my_b.m_number, id(my_b.m_number) print my_b.m_hi, id(my_b.m_hi) print my_c.m_number, id(my_c.m_number) => [2] 2 23844636 1 23844648 1 23844648 int同數字的會指向同一address,不同數字時就會不同address了 這是python 用來省記憶體的方式 list要複製一份的話,可用[:] 不確定是不是你要的答案~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.252.74.54
imasa:你的做法給了我啟發,謝謝你的解答 :p 03/05 15:38