웹상 어디서나 답변을 찾을 수없는 매우 구체적인 문제가 있습니다. 저는 Python 코드에 익숙하지 않습니다 (C++은 제 1 언어 임). 그래서 이것은 의미 론적 문제 일뿐입니다. 내 질문에 대한 루프의 범위 내에서 선언 된 개체에 관한 것입니다.Python - for 루프 내에서 선언 된 객체 목록에 추가하기
이 코드의 목적은 for 루프 내에 새로운 임시 객체를 만들고, 그 객체의 목록에 항목을 추가 한 다음 객체를 for 루프 외부의 목록에 넣는 것입니다. for 루프를 반복 할 때마다 항목을 채우기 위해 새롭고 별도의 객체를 만들고 싶습니다. 그러나 for 루프가 실행될 때마다 객체의 목록은 이미 이전 반복의 항목으로 채워집니다.
저도 같은 문제가있는 더 큰 프로그램이 대신 대규모 프로그램을 포함, 나는 같은 의미 론적 문제가있는 작은 예를 썼다 : 프로그램이 끝날 무렵
#Test
class Example:
items = []
objList = []
for x in xrange(5):
Object = Example()
Object.items.append("Foo")
Object.items.append("Bar")
print Object.items
objList.append(Object)
print "Final lists: "
for x in objList:
print x.items
을 이것은 각각의 반복 재현되지 않는다 (이 경우 객체라고도 함) 예를 믿고 날 리드, 대신 각 반복에 걸쳐 유지
["Foo","Bar","Foo","Bar","Foo","Bar","Foo","Bar","Foo","Bar"]`
, objList의 모든 항목 (첫 번째 반복에서조차 것들)를 포함, 에 액세스 할 때마다 루프가 계속됩니다.
내 간단한 질문; 파이썬에서 이것을 어떻게 바꿀 수 있습니까?
내 문제가 해결되었습니다. 감사합니다. 나는 클래스의 다양한 변수가 존재한다는 것을 알지 못했다. – Peabody