처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
퀴즈 / Python / 문제

Python에서 가변 객체(mutable)를 함수의 기본 인자값으로 사용하면 발생하는 문제는?

보통 Stack Overflow
보기 및 정답
A 기본 인자가 함수 정의 시 한 번만 생성되어 호출 간에 공유되므로 의도치 않은 상태 유지가 발생한다
B 함수가 호출될 때마다 기본 인자 객체의 메모리 할당이 두 배씩 증가하여 심각한 메모리 누수 문제가 발생한다
C 가변 객체를 기본 인자로 사용하면 TypeError가 발생하여 함수 정의 자체가 불가능하다
D 기본 인자가 매 호출마다 새로 초기화되어 이전 호출에서 추가한 데이터가 모두 사라진다

해설

def func(lst=[])처럼 가변 객체를 기본값으로 사용하면, 리스트가 함수 정의 시점에 한 번만 생성됩니다. 이후 호출에서 같은 리스트를 공유하므로 lst.append(1)이 누적됩니다. 해결책은 기본값을 None으로 두고 함수 내부에서 새 리스트를 생성하는 것입니다.

코딩, 제대로 배우고 싶다면?

개념 확인은 퀴즈로, 실력은 실전 프로젝트로.
투더제이 코딩클래스에서 시작하세요.

정규반 살펴보기