파이썬에서 Default parameters는 기본 값이 정의된 인자를 말합니다. 기본 값이 미리 정의되어있기 때문에, 함수를 호출할 때 인자를 명시하지 않아도 기본 값으로 인자가 전달됩니다.
1. syntax
디폴트 매개변수를 사용하려면 param=value
처럼, 함수를 정의할 때 인자에 기본 값을 함께 정의하면 됩니다.
def function_name(param1, param2=value2, param3=value3, ...):
모든 인자를 디폴트 매개변수로 설정하고 싶다면 다음과 같이 함수를 정의할 수 있습니다.
def function_name(param1=value1, param2=value2):
하지만, 일반 인자와 디폴트 매개변수가 섞어서 사용할 때는 디폴트 매개변수는 일반 인자 다음에 정의해야 합니다. 디폴트 매개변수를 앞에 정의하면 컴파일러가 일반 매개변수와 디폴트 매개변수를 구분할 수 없기 때문입니다.
만약 아래와 같이 기본 인자 앞에 디폴트 매개변수를 정의하면 컴파일 과정에서 에러가 발생합니다.
def function_name(param1=value1, param2):
print("Hello")
2. Default parameters 예제
아래는 함수를 정의할 때 디폴트 매개변수를 사용하는 예제입니다. 함수를 호출할 때 msg 인자를 전달하지 않으면, 기본 값으로 "Hello"
가 전달된 것처럼 동작합니다.
명시적으로 msg 인자를 전달하면 그 값으로 인자가 전달됩니다.
def hello(name, msg="Hello"):
print(f"{name}, {msg}")
hello("Adele")
hello("Adele", "Hi")
Output:
Adele, Hello
Adele, Hi
3. 2개 이상의 Default parameter 사용 예제
아래와 같이 함수의 모든 인자를 디폴트 매개변수로 정의할 수 있습니다. 함수를 호출할 때 인자를 전달하지 않거나, 1개 또는 2개를 전달할 수 있습니다.
def hello(name="Jone", msg="Hello"):
print(f"{name}, {msg}")
hello()
hello("Adele")
hello("Adele", "Hi")
Output:
Jone, Hello
Adele, Hello
Adele, Hi
다음과 같이 모든 인자가 디폴트 매개변수일 때, 함수 호출 시 1개의 인자만 전달한다면, 그 인자는 첫번째 인자가 됩니다. 그리고 두번째 인자는 기본 값으로 전달됩니다.
def hello(name="Jone", msg="Hello"):
print(f"{name}, {msg}")
hello("Adele")
Output:
Adele, Hello
만약 첫번째 인자 name을 기본 값을 사용하고, 두번째 인자 msg를 직접 전달하고 싶다면 아래와 같이 msg="Hello"
처럼 어떤 인자인지 명시해주면 됩니다.
def hello(name="Jone", msg="Hello"):
print(f"{name}, {msg}")
hello(msg="Hi")
Output:
Jone, Hi
또한, 아래와 같이 인자 이름을 함께 명시해주면, 인자의 위치가 바뀌어도 괜찮습니다.
def hello(name="Jone", msg="Hello"):
print(f"{name}, {msg}")
hello(msg="Hi", name="Adele")
Output:
Adele, Hi
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - 파일 내용 삭제
- Python - for문에서 리스트 순회 중 요소 값 제거
- Python - 두 리스트에서 공통 요소 값 찾기
- Python - 문자열 앞(뒤)에 0으로 채우기
- Python - 공백으로 문자열 분리
- Python - 중첩 리스트 평탄화(1차원 리스트 변환)
- Python - 16진수 문자열을 Int로 변환
- Python - 두 날짜, 시간 비교
- Python f-string으로 변수 이름, 값 쉽게 출력 (변수명 = )
- Python - nonlocal과 global 사용 방법
- Python 바다코끼리 연산자 := 알아보기
- Python - pip와 requirements.txt로 패키지 관리
- Python - 딕셔너리 보기 좋게 출력 (pprint)
- Python - Requests 사용 방법 (GET/POST/PUT/PATCH/DELETE)
- Python - 온라인 컴파일러 사이트 추천
- Python - os.walk()를 사용하여 디렉토리, 파일 탐색
- Python - 문자열 비교 방법
- Python - Text 파일 읽고 쓰는 방법 (read, write, append)
- Python - 리스트에서 첫번째, 마지막 요소 가져오는 방법
- Python - 두개의 리스트 하나로 합치기
- Python - 리스트의 마지막 요소 제거
- Python - 리스트의 첫번째 요소 제거
- Python 소수점 버림, 4가지 방법
- Python 코드 안에서 버전 확인 방법
- Python 소수점 반올림, round() 예제
- Python - 리스트 평균 구하기, 3가지 방법
- Python - bytes를 String으로 변환하는 방법
- Python - String을 bytes로 변환하는 방법
- Python 버전 확인 방법 (터미널, cmd 명령어)
- Python - 람다(Lambda) 함수 사용 방법
- Python - dict 정렬 (Key, Value로 sorting)
- Python - range() 사용 방법 및 예제
- Python - 리스트를 문자열로 변환
- Python - 문자를 숫자로 변환 (String to Integer, Float)