Python에서 함수의 인자는 아래처럼 4가지로 나뉩니다.

  • 필수 인자
  • 선택 인자
  • 가변 위치 인자 튜플
  • 가변 키워드 인자 딕셔너리

여기서 알아보고자 하는 건, 인자의 기본값입니다. Python에서 함수의 인자에는 기본값을 설정할 수 있고, 꽤 유용하게 사용할 수 있습니다.

그러나 Python에서 함수 인자의 기본값은 단 한 번만 평가됩니다. 따라서, 아래와 같은 함수는 예상 외의 결과를 만들어 냅니다.

log 함수에 at 인자가 전달되지 않을 경우 '현재 시간'으로 인자를 채우도록 하려는 의도였으나, 두 번의 함수 호출에 대한 at 인자의 값이 동일합니다. Python의 함수는 인자의 기본값 평가를 최초 한 번만 수행하기 때문입니다. 따라서 아래와 같이 함수를 작성하는 것이 좋습니다.

기본값을 None으로 두고, 함수 내부의 if문에서 값을 채워주는 방식입니다.

'Python 계열 > Python 레거시 글' 카테고리의 다른 글

[Python] Closure  (0) 2018.07.20
[Python] 문자열의 메모리 할당 방식  (0) 2018.07.19
[Python] @property와 setter  (0) 2018.07.13
[Python] Keyword exclusive argument  (0) 2018.07.11
[Python] 입출력  (0) 2018.07.10

+ Recent posts