Python
2026. 11. 2.
함수 기본 인자 리스트에 값이 누적되는 이유와 None으로 해결하는 법
Python 함수에서 items=[]를 기본 인자로 사용하고 그 리스트를 변경하면, 다음 호출에도 이전 값이 남을 수 있다. 기본값은 함수를 호출할 때마다 새로 만들어지는 것이 아니라, def가 실행되어 함수가 정의될 때 한 번 평가되기 때문이다.호출할 때마다 독립적인 리스트가 필요하다면 기본값을 None으로 두고, 함수 안에서 if items is None:일 때 새 리스트를 만들면 된다. 아래는 기본 인자에 리스트를 썼을 때의 결과와 수정 방법을 비교한 예제다.기본 인자에 빈 리스트를 넣으면 왜 이전 값이 남을까?아래 함수는 전달받은 값을 리스트에 추가하고 그 리스트를 반환한다. 각 코드 블록은 위에서 아래로 실행하며, Before와 After는 별도 예제다.def add_item(value, ite..