파이썬을 공부하다 보면 함수 설명에 이런 문장을 종종 보셨을 거예요
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
이게 바로 함수의 시그니처(Signature) 입니다.
처음 보면 어려워 보이지만, 사실은 “함수를 어떻게 쓸 수 있는지 알려주는 안내문”이에요
시그니처(Signature)란?
함수를 정의하거나 호출할 때 사용할 수 있는 인자의 형식과 기본값을 요약한 표기법
쉽게 말해서,
“이 함수는 어떤 값을 받을 수 있고, 어떤 옵션을 조정할 수 있는지”를 보여주는 함수의 설계도예요.
시그니처를 해석하는 법
예를 들어, 다음 시그니처를 봅시다.
print(*objects, sep=' ', end='\n')
구성요소 의미
| 함수 이름 | |
| *objects | 여러 개의 값을 받을 수 있다는 뜻 (가변 인자) |
| sep=' ' | 값 사이 구분자 (기본값은 공백 ' ') |
| end='\n' | 출력 후 줄바꿈 (\n) |
| '=' 오른쪽 값 | 기본값(Default Value) |
즉, 시그니처는 문법이 아니라 “참고서”예요.
실제 코드는 이렇게 씁니다
print("Hello") # 기본값으로 실행
print("A", "B", "C", sep="-") # sep만 바꿔서 실행
print("끝", end="🎉\n") # end만 바꿔서 실행
다른 예시로 보기
1️⃣ range(start, stop[, step])
print(list(range(5))) # [0,1,2,3,4]
print(list(range(2, 7))) # [2,3,4,5,6]
print(list(range(1, 10, 2))) # [1,3,5,7,9]
- start: 시작값 (기본 0)
- stop: 끝값 (필수)
- step: 간격 (기본 1)
- [ ]는 선택적 인자(생략 가능)라는 뜻이에요.
2️⃣ sorted(iterable, *, key=None, reverse=False)
words = ["Banana", "apple", "cherry"]
print(sorted(words)) # 대소문자 구분
print(sorted(words, key=str.lower)) # 대소문자 무시
print(sorted(words, reverse=True)) # 역순 정렬
매개변수 설명
| iterable | 정렬할 대상 (리스트, 튜플 등) |
| key | 정렬 기준 지정 (예: str.lower) |
| reverse | 역순 정렬 여부 (기본 False) |
직접 시그니처 확인하는 법
파이썬은 help() 나 inspect 모듈을 통해
함수의 시그니처를 직접 확인할 수 있습니다.
| 시그니처(Signature) | 함수의 매개변수 구조, 기본값, 인자 형식 등을 요약한 표기 |
| [] 대괄호 | 선택(생략) 가능한 인자 |
| *args | 개수가 정해지지 않은 여러 값 (가변 인자) |
| **kwargs | 키워드 인자(이름=값 형태)로 여러 개 받을 때 사용 |
| 기본값(Default) | 생략 시 자동으로 적용되는 값 |
마무리
시그니처는 함수의 사용법을 요약해주는 “지도”예요.
실제 코드에서 그대로 쓰는 게 아니라,
“이 함수가 어떤 옵션을 지원하는지”
를 알려주는 참고서 역할을 합니다.
조금만 익숙해지면, 파이썬 공식 문서나 IDE 도움말에서 시그니처를 읽는 것만으로도
함수를 바로 이해할 수 있게 됩니다
'Patrashu의 랩실 > 파이썬' 카테고리의 다른 글
| 파이썬 기본 내장 함수 — 완전정복 가이드(설명 + 예제) (0) | 2025.10.11 |
|---|---|
| Python으로 만들어보는 Useless tool : 2. 오늘의 운세 (0) | 2025.09.30 |
| Python으로 만들어보는 Useless tool : 1. 명언 출력기 (0) | 2025.09.28 |
| 날짜, 시간 다루기 - datetime (0) | 2025.03.21 |
| 반복문 - for (0) | 2025.03.18 |