0
class StockValues:
def __init__ (self, DD, MM, YYYY, averageValue):
self.date = map (str, [DD, MM, YYYY])
self.averageValue = averageValue
class Stock:
stockValues = []
def __init__ (self, name, code, currency):
self.name = name
self.code = code
self.currency = currency
Stocks = []
for index, stock in enumerate(StocksBufferToMemory):
#print ("{0:.0f}%".format(float(index)/len(StocksBufferToMemory) * 100))
stockTemp = Stock (stock.name, stock.code, stock.currency)
stockTempValues = StockValues (stock.date[0], stock.date[1], stock.date[2], stock.averageValue)
stockTemp.stockValues.append (stockTempValues)
Stocks.append (stockTemp)
print (stockTempValues)
このコードは、stockTempごとに1つのデータだけでなく、stockTemp.stockValuesに多くのデータを作成しています。同じメモリアドレスを維持するPythonのローカル変数
助けてください、事前に
EDIT1感謝:ソフトウェアを説明する:イムは、特定の年の間、株価のフル.txtファイルを取っては、各株式は一日一本の価格を持っているので、ideiaは作成することです。株式のリストと各在庫は日に応じて価格のリストを持って、私の問題は、テストするために値の1日だけを使用していると各株式は値の倍数エントリで終わったです。私はmemのアドレスを印刷して問題を引き起こしている変数を見つけることができました。それはforループであり、反復するたびにmemmoryアドレスを変更し、stockTemp.stockValuesが変化しないようにする必要があります。
'stockTemp.stockValues'がリストであるので、メモリ内のアドレスは、最初の要素(広義)のアドレスのみです...あなた以来、それに追加のアドレスを保ちます頭は変わらない。 –
どのようにメモリアドレスを決定していますか、なぜ気にしていますか? Pythonのような高水準言語のポイントは、そのような低レベルの詳細で悩む必要はないということです。 – jwodder
これは[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)と非常によく似ています。 Pythonのメモリアドレス(メモリ管理を担当する言語)を見れば、コードに何が間違っているのかが分かると思いますか? – jwodder