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 당 단 하나의 데이터가 아니라 stockTemp.stockValues에 많은 양의 데이터를 생성합니다.파이썬에서 동일한 메모리 주소를 유지하는 로컬 변수
도와주세요, 사전에 감사
EDIT1 : 소프트웨어를 설명하면서 : 임 .txt 인을 복용 특정 한 해 동안 주가의 전체 파일 ideia이를 만드는 것입니다 때문에, 각각의 주식은 하루에 하나 개의 가격이 주식 및 각 주식의 목록은 하루에 따라 가격의 목록을 가지고, 내 문제는 그 가치가 하루에 값을 사용하여 각 주식은 가치에 대한 곱셈 항목으로 끝났다입니다. Mem 반복을 변경할 때마다 mem_address를 변경해야하고 forstTemp.stockValues가 변경되지 않는 for 루프이므로 문제를 일으키는 변수를 찾기 위해 mem 주소를 인쇄했습니다.
'stockTemp.stockValues'이 목록, 그래서 메모리의 주소는 첫 번째 요소 (광범위)의 주소입니다 ... 당신이 인 이후, 그것은에 추가의 주소를 유지 머리는 변하지 않는다. –
메모리 주소를 어떻게 결정합니까? 왜 신경을 씁니까? 파이썬과 같은 상위 레벨 언어의 요점은 당신이 저수준의 세부 사항을 가지고 주위를 비웃을 필요가 없다는 것입니다. – jwodder
이것은 [XY 문제] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)와 매우 비슷합니다. 파이썬에서 메모리 관리를 담당하는 언어 인 메모리 주소를 살펴보면 코드의 문제점을 알 수 있다고 생각하는 이유는 무엇입니까? – jwodder