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.stockValues中創建大量數據,而不是僅爲每個stockTemp一個數據。Python中保存相同內存地址的局部變量
請幫幫忙,謝謝提前
EDIT1:解釋軟件:我要帶去一個.txt在某一年文件的完整股票價格,每隻股票每天一個價,所以IDEIA是創建一個股票清單和每個股票都有根據當天的價格清單,我的問題是即時通訊只使用一天的價值進行測試,而每隻股票最後都會以價值乘法條目結束。我已經打印了mem地址,以查看導致問題的定位許可變量,因爲它是for循環,所以它應該在每次迭代時更改存儲器地址,並且stockTemp.stockValues不會更改
'stockTemp.stockValues'是一個列表,所以它在內存中的地址是唯一的第一個元素(廣義)的地址...的,因爲你不斷追加到它,的地址頭不改變。 –
你如何確定內存地址,爲什麼你甚至在意?像Python這樣的高級語言的重點在於,你不需要像這樣的低級細節。 – jwodder
這看起來很像[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。是什麼讓你認爲在Python中查看內存地址 - 一種爲你處理內存管理的語言 - 會告訴你代碼有什麼問題? – jwodder