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