python 中的局部变量保持相同的内存地址

Local variable in python maintaining the same memory adress

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 文件,每只股票每天都有一个价格,所以我的想法是创建一个股票列表,每只股票都有一个列表根据当天的价格,我的问题是我只使用一天的价值来测试,每只股票最终都与价值相乘。我已经打印了内存地址以查看导致问题的定位变量,因为它是一个 for 循环,它应该在每次迭代时更改内存地址并且 stockTemp.stockValues 没有改变

感谢@jasonharper 的回答,问题是我的 stockValues 变量是 class 属性(所有 class 实例的值相同)而不是实例属性。 代码固定:

class Stock:

def __init__ (self, name, code, currency):
    self.name = name
    self.code = code
    self.currency = currency
    self.stockValues = []