Python 함수의 인자는 아래처럼 4가지 종류가 있습니다.
- 위치 인자
- 키워드 인자
- 가변 위치 인자 튜플
- 가변 키워드 인자 딕셔너리
이들 중 키워드 인자를 의무로 사용하도록 강제
할 수 있으며, 이를 키워드 전용 인자(Keyword exclusive argument)
라는 Python 3의 특별한 문법을 사용합니다. 이를 통해 함수 호출자로 하여금 명시성을 강조할 수 있습니다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def sum(a=0, b=0, *, c=0, d=0): | |
return a + b + c + d | |
print(sum(3, 4, c=5, d=6)) | |
# 18 | |
print(sum(3, 4, 5, 6)) | |
# TypeError |
asterisk(*)
뒤의 키워드 인자들을 키워드 전용 인자라고 부르며, 이렇게 선언된 인자들에 위치 인자 형태로 값을 넘기려고 하면 TypeError
가 발생합니다. Python 2
에서는 문법적으로 키워드 전용 인자 문법을 지원하지 않으며, **kwargs
와 raise
문을 사용하는 방식으로 키워드 전용 인자를 흉내낼 수 있습니다.
'Python 계열 > Python 레거시 글' 카테고리의 다른 글
[Python] 함수 인자의 기본값 평가 (0) | 2018.07.14 |
---|---|
[Python] @property와 setter (0) | 2018.07.13 |
[Python] 입출력 (0) | 2018.07.10 |
[Python] Comprehension (0) | 2018.07.09 |
[Python] PEP (0) | 2018.07.08 |