반응형
(본 포스팅은 김상형 저자의 '파이썬 정복' 책을 참조했습니다)
파이썬을 활용하다보면 함수를 정의하거나 불러올 때 **kwargs 또는 **args와 같은 것을 곧잘 목격하셨을 거라고 생각합니다.
이 친구들은 키워드 가변 인수(keyword arguments <-> kwargs 등으로 표기됨)를 의미하는데요.
호출원에서 여러 개의 키워드 인수를 전달하면, 인수의 이름과 값을 쌍으로 사전으로 만들어서 전달합니다.
함수 내부에서는 사전을 읽듯이 인수값을 꺼내 사용합니다.
아래 간단한 활용 예제를 살펴보겠습니다.
# keyword variable argument 활용 예제
def calcstep(**args):
begin = args['begin']
end = args['end']
step = args['step']
total = 0
for total in range(begin, end + 1, step):
total += num
return total
# 인자 순서에 주목하자. 인자 순서는 중요하지 않다.
print("3 ~ 5 = ", calcstep(begin=3, end=5, step=1))
print("3 ~ 5 = ", calcstep(step=1, begin=3, end=5))
더 간단한 예를 들어보자면.. 아래처럼 딕셔너리 구조로 전달하면 인자의 순서가 중요하지 않다는 부분이 이해가 될 것입니다.
kwargs = {'begin': 3,
'end': 5,
'step': 1}
print("3 ~ 5 = ", calcstep(**kwargs))
대신 딕셔너리 형태로 전달할 때는 앞에 ** 기호를 필히 붙여줘야 에러 없이 전달이 됩니다.
반응형
'파이썬 > 파이썬 기초' 카테고리의 다른 글
[python] 반복자(iterator)와 제너레이터(generator) (0) | 2023.04.05 |
---|---|
[python] finally 블록 - 파이썬의 자원정리 방법 (0) | 2023.03.05 |
[python] is 연산자란? (0) | 2023.03.05 |
[python] 함수 - 가변 인수 (0) | 2023.03.05 |