인수 기본 값에서 리스트 또는 딕셔너리로서의 가변 값이 탐지된 경우 문제를 보고합니다.
기본 인수 값은 함수 정의 시 한 번만 평가됩니다.
즉, 인수의 기본값을 변경하면
그 함수의 모든 후속 호출에 영향을 미칩니다.
예:
def func(s, cache={}):
cache[s] = None
빠른 수정이 적용되면 코드는 다음과 같이 변경됩니다.
def func(s, cache=None):
if cache is None:
cache = {}
cache[s] = None