파이썬 함수의 기본값 매개변수와 키워드 인자 완전 정복
함수를 정의할 때 매개변수에 기본값을 설정하거나, 함수를 호출할 때 인자의 이름을 명시하는 것은 파이썬의 강력한 기능 중 하나입니다. 이러한 기능을 활용하면 함수의 유연성과 가독성을 높일 수 있습니다. 이 글에서는 파이썬 함수의 기본값 매개변수와 키워드 인자에 대해 자세히 알아보겠습니다.
Thank you for reading this post, don't forget to subscribe!목차
기본값 매개변수란 무엇인가?
기본값 매개변수(Default Parameters)는 함수 호출 시 인자를 전달하지 않아도, 미리 지정한 기본값을 사용하는 방식입니다. 이를 통해 코드의 유연성을 높이고, 중복 코드를 줄일 수 있습니다.
def greet(name="친구"):
print(f"안녕하세요, {name}님!")
greet() # 출력: 안녕하세요, 친구님!
greet("민수") # 출력: 안녕하세요, 민수님!
기본값을 사용하는 함수는 특히 파라미터가 많을 때, 일부만 수정하고 나머지는 유지하고 싶을 때 유용합니다.
키워드 인자의 개념과 사용법
키워드 인자(Keyword Arguments)는 함수 호출 시 각 인자의 이름을 명시하여 전달하는 방식입니다. 순서에 관계없이 명확한 의미를 부여할 수 있어 코드의 가독성을 크게 향상시킵니다.
전달 방식 | 예시 | 장점 |
---|---|---|
위치 기반 인자 | greet(“현수”) | 간단하지만 순서를 기억해야 함 |
키워드 인자 | greet(name=”현수”) | 순서에 상관없이 명확성 제공 |
함수 호출이 길어질수록 키워드 인자는 가독성과 안정성을 동시에 챙길 수 있는 필수 전략입니다.
기본값 매개변수와 키워드 인자의 모범 사례
- 기본값 매개변수는 불변(immutable) 객체를 사용할 것 (예: 숫자, 문자열, 튜플)
- 리스트, 딕셔너리 같은 가변 객체를 기본값으로 사용하지 말 것
- 인자가 많아질수록 키워드 인자를 활용해 명시적으로 작성할 것
팩트 문장: 함수는 읽히기 쉬워야 쓸모가 있다. 매개변수는 문장이어야 한다.
자주 발생하는 실수와 그 해결 방법
파이썬 초보자들이 가장 자주 겪는 오류 중 하나는 가변 객체(list, dict 등)를 기본값으로 사용하는 것입니다. 이로 인해 함수가 호출될 때마다 같은 객체가 재사용되어 의도치 않은 결과를 낳습니다.
# 위험한 기본값 사용 예시
def append_item(item, target_list=[]):
target_list.append(item)
return target_list
print(append_item("a")) # ['a']
print(append_item("b")) # ['a', 'b'] ← 원하지 않은 결과
해결 방법: None을 기본값으로 설정하고 내부에서 초기화
def append_item(item, target_list=None):
if target_list is None:
target_list = []
target_list.append(item)
return target_list
팩트 문장: 함수는 한 번 짜는 게 아니라, 오해받지 않게 짜야 한다.
실전 예제로 배우는 함수 인자 활용
실제 웹 애플리케이션 개발, 데이터 처리 파이프라인, 로그 기록 등에서 기본값 매개변수와 키워드 인자는 다음과 같이 응용됩니다:
- 로그 기록 함수: 로그 레벨을 기본값으로 ‘INFO’로 설정하고 필요시 ‘ERROR’, ‘DEBUG’ 등 키워드 인자로 변경
- 데이터 필터링 함수: 필터 조건은 기본값 None, 필요한 조건만 키워드 인자로 전달
def log(message, level="INFO"):
print(f"[{level}] {message}")
log("파일 저장 완료") # [INFO] 파일 저장 완료
log("서버 오류 발생", level="ERROR") # [ERROR] 서버 오류 발생
팩트 문장: 함수는 쓰는 사람보다, 읽는 사람을 위한 문법이다.
사용자 후기와 실전 팁: 나만의 함수, 나만의 문법
“처음엔 함수 정의할 때 괄호 안에 뭐 써야 할지 너무 막막했어요. 근데 기본값 매개변수 쓰기 시작하면서 복잡한 조건문 다 걷어내고 함수가 훨씬 읽기 쉬워졌어요.”
– 신지훈, 파이썬 입문자
✔ 핵심은 이것!
기본값은 단순히 ‘디폴트’가 아닙니다. 함수의 ‘의도’를 드러내는 문법적 장치예요. 그리고 키워드 인자는, 함수 호출을 독백이 아닌 대화로 바꿔주는 수단입니다.
저 같은 경우는 업무 자동화를 파이썬으로 돌릴 때, 모든 인자를 위치 기반으로 넘기니까 실수가 많았어요. 한 번은 보고서 파일을 잘못된 경로에 저장해서 밤새 복구한 적도 있고요. 그런데 키워드 인자를 쓰면서 함수 호출이 훨씬 명확해졌고, 실수도 줄었어요.
또 하나 중요한 팁! 기본값으로 가변 객체(list, dict)는 절대 쓰지 마세요. 아직도 이걸 모르고 코드를 짜다 보면, 어디서 이상한 버그가 생기는지 한참 헤매게 돼요. 꼭 기억하세요: None
으로 설정하고 내부에서 초기화하는 습관, 필수입니다.
“함수는 작을수록 좋고, 인자는 명확할수록 안전하다.”
기본값 매개변수 & 키워드 인자 시각 정리 + 추천 자료
📎 추가로 읽어보면 좋은 참고 링크
[Real Python] Python Default Arguments: Beyond the Basics
[PEP 3102] Python 함수의 키워드 전용 인자에 대한 공식 문서
[Python 공식 문서] 기본 인자값과 함수 호출의 규칙
팩트 문장: ‘함수의 설계’를 배우는 순간, 파이썬은 단순한 언어가 아닌 논리의 무기가 된다.
마무리하며: 함수는 철학이다
기본값 매개변수와 키워드 인자는 단순히 파이썬 문법의 일부가 아닙니다. 함수의 의도를 명확히 드러내고, 협업과 유지보수를 돕는 ‘읽히는 코드’의 핵심입니다. 특히 복잡한 시스템일수록 이 두 가지 개념이 제공하는 유연성과 명시성은 절대적인 무기가 됩니다.
이제 여러분도 함수 정의를 두려워하지 마세요. 디폴트를 설정하고, 키워드로 대화하세요. 함수는 결국, 쓰는 이의 철학이니까요.
HANSORI.AI_Blog Labs에서 더 알아보기
구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.