私は次のコードを持っている:オブジェクト指向のインスタンス変数の問題
class Stock(object):
def __init__(self,name,price):
self.name = name
self.price = price
def Add_Price(self,data):
self.price.append(data)
def test():
l=[]
n=0
while n < 390:
s1= Stock('A', l)
s2= Stock('B', l)
s1.Add_Price(d1[n]) # d1 is a list with the prices for A #
s2.Add_Price(d2[n]) # d2 is a list with the prices for B #
print s1.price, s2.price
n=n+1
私はそれを実行すると、私はs1.price
を呼び出すと、あなたは株式A
の価格で配列を受け取り、s2.price
が持っているということであろうと想定していますが在庫の価格B
。しかし、私がそれを実行すると、s1.price
とs2.price
は同じです。
したがって、self.price
に新しい値を追加すると、クラスの現在のインスタンスの変数に追加されていないようです。
誰でも私が間違っていることを指摘できますか?
編集:
電流出力:
[10 150] [10 150]
[10 150 10.2 150.3] [10 150 10.2 150.3]
所望の出力:
[10] [150]
[10 10.3] [ 150 150.3]
ありがとうございました。ループが他の理由でそこにあると言わざるを得ないでしょう...しかし、答えの最初の部分が問題を解決しました –
@abcla私は私の投稿を編集しました。 whileループ内の他の場所でその特定のn要素を使用していない場合でも、スプライシングのパフォーマンス上の利点を使用できますが、他の場所で要素を使用している場合は、状況に応じて個別に追加することができます。また、これが正解であれば、それを受け入れてください:) –