看板 Python 關於我們 聯絡資訊
可以改成這樣 class Point: def __init__(self, x, y): self.x = x self.y = y @property def pos(self): return [self.x, self.y] 可以避免產生資料不同步的問題 ※ 引述《jijuan ()》之銘言: : class Point: : x = 0 : y = 0 : pos = [0, 0] : def __init__(self, x, y): : self.x = x : self.y = y : self.pos[0] = x : self.pos[1] = y : def show_xy(self): : print(self.x, self.y, self.pos[0], self.pos[1]) : p1 = Point(1, 2) : p2 = Point(3, 4) : p1.show_xy() : p2.show_xy() : 輸出結果是 : 1 2 3 4 : 3 4 3 4 : 雖然p1、p2是兩個不同的實體 : 所以不是各自都有一份屬於自己的x、y和pos嗎 : 可是p1中的pos卻是建立p2時賦予的值 : 但xy卻又沒變 : 請問這是什麼原因 : 如果需求是希望每個一實體都有一份自己獨立的pos時 : 該如何做呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.65.79 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1574154225.A.AD9.html