기본 패턴
python
def greet(name, *, title="Student", **extra):
return f"{title} {name}"
def add_all(*numbers):
return sum(numbers)설명
- Python 함수는 위치 인수와 키워드 인수를 모두 지원합니다.
*args는 여러 위치 인수를 튜플로 받고,**kwargs는 여러 키워드 인수를 딕셔너리로 받습니다.*를 함수 시그니처 안에 두면 그 뒤 매개변수는 키워드로만 전달되도록 강제할 수 있습니다.- 인자 모델을 잘 설계하면 함수 호출이 더 명확해지고 실수를 줄이기 쉽습니다.
짧은 예제
python
def report(name, score, *, passed=True):
status = "PASS" if passed else "FAIL"
return f"{name}: {score} ({status})"
print(report("Mina", 88, passed=True))빠른 정리
| 문법 | 역할 |
|---|---|
name | 일반 매개변수 |
*args | 여러 위치 인수 수집 |
**kwargs | 여러 키워드 인수 수집 |
*, flag=True | 키워드 전용 매개변수 |
공식 참고: More on Defining Functions
주의할 점
*args, **kwargs는 유연하지만 함수 인터페이스를 흐리게 만들 수도 있습니다. 자주 쓰는
인자는 명시적으로 선언하고, 정말 가변적인 경우에만 사용하는 편이 좋습니다.