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只创建一个数据。
请提前帮助,请提供帮助
EDIT1:解释软件:我在某一年内收到一个完整的股票价格的.txt文件,每个股票每天有一个价格,所以ideia是创建一个股票清单,每个股票都有一个价格清单根据这一天,我的问题是我只使用一天的值进行测试,每个股票最终都有值的乘法条目。我打印了mem地址以查看找到导致问题的变量,因为它是for循环,它应该在每次迭代时更改memmory地址并且stockTemp.stockValues不会更改
答案 0 :(得分:0)
感谢@jasonharper的答案,问题是我的stockValues变量是一个类属性(所有类实例的值相同)而不是实例属性。 代码已修复:
class Stock:
def __init__ (self, name, code, currency):
self.name = name
self.code = code
self.currency = currency
self.stockValues = []