Patrashu의 랩실/파이썬

파이썬 함수 시그니처(Signature) 완벽 이해하기

Patrashu의 비밀창고 2025. 10. 11. 09:36

파이썬을 공부하다 보면 함수 설명에 이런 문장을 종종 보셨을 거예요

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

 

이게 바로 함수의 시그니처(Signature) 입니다.
처음 보면 어려워 보이지만, 사실은 “함수를 어떻게 쓸 수 있는지 알려주는 안내문”이에요

 

시그니처(Signature)란?

함수를 정의하거나 호출할 때 사용할 수 있는 인자의 형식과 기본값을 요약한 표기법

쉽게 말해서,
“이 함수는 어떤 값을 받을 수 있고, 어떤 옵션을 조정할 수 있는지”를 보여주는 함수의 설계도예요.

 

시그니처를 해석하는 법

예를 들어, 다음 시그니처를 봅시다.

print(*objects, sep=' ', end='\n')

 

구성요소 의미

print 함수 이름
*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 도움말에서 시그니처를 읽는 것만으로도
함수를 바로 이해할 수 있게 됩니다