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 |