나는 객체 유형을 만들었습니다 .. 그리고 initilializing 후 나는 그것을 목록으로 밀어 넣을 것입니다. 하지만 어떤 이유로 동작이 예상 한 것과 다릅니다. 샘플 코드를 넣은 다음 출력을 보겠습니다.파이썬 추가 이상한 행동
def allignDatesToWhenWasItemSold(pilotInstance):
unitsSoldPerDay = pilotInstance._units_sold_per_day
productPart = pilotInstance._product
date = productPart._date
quantity = pilotInstance._product._quantity
listOfPilotInstance = []
for i in range(len(unitsSoldPerDay)):
perDayQuantity = unitsSoldPerDay[i]
#modDate = date
#print perDayQuantity
modDate = modifyDate(date, i)
productPart._date = modDate
#print "pro ", productPart._date
newPilotInstance = PilotTest(productPart, pilotInstance._name,perDayQuantity)
print "here ",newPilotInstance._product._date._date, ' ',newPilotInstance._product._date._month, ' ', newPilotInstance._units_sold_per_day
#newPilotInstance.setDate(modDate)
listOfPilotInstance.append(newPilotInstance) #note this line.. this is where the trouble is
for k in listOfPilotInstance:
print k._product._date._date
for ele in listOfPilotInstance:
print "there " ,ele._product._date._date, ' ',ele._product._date._month, ' ',ele._units_sold_per_day
return listOfPilotInstance
아웃 된 풋은
here 30 7 1
30
here 31 7 0
31<--- now this shouldnt be like this.. as I am doing append.. teh first ele shoulnt be overwrited??
31
here 1 8 2
1
1
1
there 1 8 1
there 1 8 0
there 1 8 2
다음과 같다 그래서 내 쿼리 내가 APPEND를하고있는 중이 야하기 때문에 .. 왜 날짜 요소가 overwrited지고 있다는 점이다? 내가 뭘 잘못하고있는 것처럼 단서가 있습니까? 감사
메모 :'for i, perDayQuantity in enumerate (unitsSoldPerDay) :'는 더 pythonic입니다. – nmichaels