2017-04-10 93 views
1

當我正在並不如預期如何在python中創建一個對象數組?

我定義的類初始化爲數組的值在python對象數組是

class piece: 
    x = 0 
    y = 0 
    rank = "" 
    life = True 
    family = "" 
    pic = "" 

    def __init__(self, x_position, y_position, p_rank, p_family): 
     piece.x = x_position 
     piece.y = y_position 
     piece.rank = p_rank 
     piece.family = p_family 

,當我初始化數組

pie = [] 
pie.append(piece(25, 25, "p", "black")) 
pie.append(piece(75, 25, "p", "black")) 
pie.append(piece(125, 25, "p", "black")) 

print(pie[1].x) 

輸出是125 其中預期的輸出是75

+0

我試着餅[2] .X和餡餅[3] .X每一個打印相同的125 –

+2

他們是類屬性不是實例屬性 –

回答

9

您正在設置類屬性,而不是在類的實例分配值:

class piece: 

    def __init__(self, x_position, y_position, p_rank, p_family): 
     self.x = x_position 
     self.y = y_position 
     self.rank = p_rank 
     self.family = p_family 
+1

爲了詳細,使用'self'語法而不是類的名稱來爲類的實例賦值。 – blacksite

相關問題