안녕하세요!
이번 글에서는 파이썬에서 함수 파라미터를 설정하는 방법에 대해서 알아보려고 합니다.
1) Positional-or-Keyword Arguments
2) Positional-Only Parameters
3) Keyword-Only Arguments
4) default _Arguments
5) 다 같이 사용해 보기
순으로 알아보겠습니다.
1) Positional-or-Keyword Arguments
/이나 *가 함수 정의에 없으면 인자는 positional이나 keyword 아무거나 전달 가능합니다.
def posi_or_keyword(para):
print(para)
posi_or_keyword(100)
posi_or_keyword(para=100)
# 100
# 100
2) Positional-Only Parameters
Positional 방식으로만 전달할 수 있도록 할 수 있습니다.
Positional 방식으로만 전달하고 싶은 인자들 뒤에 /를 사용해 주세요
def posi_only(para,/):
print(para)
posi_only(100)
posi_only(para = 100)
# 100
# TypeError: posi_only() got some positional-only arguments passed as
# keyword arguments: 'para'
/ 뒤의 매개변수는 positional 이거나 keyword 이거나 keyword-only 일 수 있습니다.
3) Keyword-Only Arguments
첫 번째 키워드 전용 매개변수 앞에 *를 써주면 됩니다
def keyword_only(*,para):
print(para)
keyword_only(para=100)
keyword_only(100)
# 100
# TypeError: keyword_only() takes 0 positional arguments but 1 was given
positional로 전달하면 에러가 발생합니다.
4) default _Arguments
def keyword_default(para='default'):
print(para)
keyword_default()
keyword_default(100)
keyword_default(para=100)
# default
# 100
# 100
default로 기본값을 설정할 수 있습니다.
변경할 일이 별로 없는 파라미터는 default로 미리 값을 넘겨놓으면
함수 호출 시에 파라미터를 전달 안 해도 되기 때문에 더 편하게 사용할 수 있습니다.
5) 다 같이 사용해 보기
def get_para(para1,/,para2,*,para3,para4 = 7):
print(f'1: [{para1}]')
print(f'2: [{para2}]')
print(f'3: [{para3}]')
print(f'4: [{para4}]')
get_para(1,2,para3=7,para4 = 90)
# 1: [1]
# 2: [2]
# 3: [7]
# 4: [90]
이런 식으로 다 같이 활용이 가능합니다.
정리)
1) Positional-or-Keyword Arguments
*나 /가 없으면 둘 중 하나의 방식을 선택해서 인자를 넘길 수 있도록 할 수 있다.
2) Positional-Only Parameters
positional로만 전달할 인자 뒤에 /를 써서 positional 로만 인자를 넘기게 할 수 있다.
3) Keyword-Only Arguments
keyword로만 받고싶은 인자 앞에 *를 사용하여 keyword로만 인자를 넘기게 할 수 있다.
4) default _Arguments
값이 변할 일이 빈번하지 않은 파라미터에 기본값을 설정할 수 있다.
앞에 *이 없다면 positional이나 keyword 로 자유롭게 인자를 변경할 수 있다.
마치면서)
파이썬 공식 문서에서 파이썬 Special parameters로 예제를 찾아보시면 더욱 자세한 정보를 얻을 수 있습니다.
다음 글에서도 유용한 파이썬 팁과 기능을 소개하도록 하겠습니다
감사합니다.
'파이썬 > 사용법' 카테고리의 다른 글
[python] 파이썬 함수 가독성 극대화하기 (0) | 2023.07.31 |
---|---|
[python] 함수 파라미터 설정하는 방법 정리 [2] (0) | 2023.07.30 |
[python] 파이썬 함수 파라미터 전달 방식 정리 (0) | 2023.07.30 |
[python] 파이썬이 변수를 할당하는 방식 (0) | 2023.07.29 |
[python] 파이썬이 함수를 바인딩하는 방식 (0) | 2023.07.29 |