Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 기본 인수(Default Argument) 완벽 가이드: 개념부터 예제까지

파이썬 기본 인수란?

기본 인수(Default Argument)는 함수를 호출할 때 해당 인수에 값이 전달되지 않을 경우, 미리 정의된 기본값을 자동으로 사용하는 인수를 말합니다. 함수 정의 시 매개변수에 = 기호로 기본값을 지정하면 되며, 이를 활용하면 함수 호출을 훨씬 유연하게 만들 수 있습니다.

다음 예제는 기본 인수의 동작 방식을 보여줍니다. age 값이 전달되지 않으면 기본값인 35가 사용됩니다.

예제

#!/usr/bin/python3
# 함수 정의
def printinfo(name, age=35):
    """전달받은 정보를 출력하는 함수"""
    print("Name:", name)
    print("Age", age)
    return

# printinfo 함수 호출
printinfo(age=50, name="miki")
printinfo(name="miki")

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Name: miki
Age 50
Name: miki
Age 35

동작 원리 설명

첫 번째 호출에서는 age=50으로 값을 명시적으로 전달했기 때문에 50이 그대로 출력됩니다. 반면 두 번째 호출에서는 name만 전달하고 age를 생략했는데, 이때 함수 정의 시 설정해 둔 기본값 35가 자동으로 적용됩니다.

또한 위 예제처럼 키워드 인수(keyword argument) 형태로 호출하면 인수 순서와 관계없이 값을 명확하게 전달할 수 있다는 점도 눈여겨볼 만합니다.

기본 인수 사용 시 주의사항

  • 기본값이 있는 매개변수는 뒤쪽에 위치해야 합니다. 기본 인수 뒤에 기본값이 없는 일반 매개변수를 선언하면 문법 오류(SyntaxError)가 발생합니다.
  • 가변 객체를 기본값으로 사용할 때 주의하세요. 리스트나 딕셔너리 같은 가변 객체를 기본값으로 지정하면 함수 호출 간에 상태가 공유되어 의도치 않은 동작이 일어날 수 있습니다. 이 경우 None을 기본값으로 사용하고 함수 내부에서 새로 생성하는 것이 안전한 방법입니다.
  • 기본값은 함수 정의 시 한 번만 평가됩니다. 따라서 호출 시점마다 값이 바뀌는 표현식(예: 현재 시간)을 기본값으로 넣으면 예상과 다른 결과가 나올 수 있습니다.

기본 인수를 잘 활용하면 불필요한 인수 전달을 줄이고, 다양한 상황에서 재사용 가능한 깔끔한 함수를 작성할 수 있습니다.