Re: [問題] 類別中使用List的問題

作者: TuCH (謬客)   2019-11-19 17:03:43
可以改成這樣
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時
: 該如何做呢?

Links booklink

Contact Us: admin [ a t ] ucptt.com