콘텐츠로 건너뛰기

args를 사용하는 방법을 쉽게 설명합니다.

[

Python args와 kwargs: 간단히 알아보기

인터프리터 언어인 파이썬을 사용하다보면 종종 ***args**와 ****kwargs**라고 표시된 두 가지 이상한 인자들을 함수 정의에서 발견할 수 있습니다. 이러한 이상한 변수들이 무엇이고, 왜 통상적인 함수 정의에서 IDE가 이러한 변수들을 정의하는지 궁금해할 때, 이 문서는 여러분을 위한 것입니다. 이 문서에서는 파이썬에서 args와 kwargs를 사용하여 함수에 더 많은 유연성을 추가하는 방법에 대해 배우게 될 것입니다.

이 문서의 끝까지 읽으면, 다음을 알게 될 것입니다.

  • *args**kwargs가 실제로 무엇을 의미하는지
  • 함수 정의에서 *args**kwargs를 어떻게 사용하는지
  • 별표(*)를 사용하여 반복 가능한 객체(iterable)를 언패킹하는 방법
  • 이중 별표(**)를 사용하여 사전(dictionary)을 언패킹하는 방법

퀴즈 풀기: “파이썬 args와 kwargs: 간단히 알아보기” 퀴즈를 통해 여러분의 학습 진행 상황을 추적할 수 있는 점수를 받아보세요.

함수에 여러 인자 전달하기

***args**와 ****kwargs**는 여러 개의 인자 또는 키워드 인자를 함수에 전달할 수 있게 하는 기능입니다. 다음의 예를 살펴보겠습니다. 여기에는 두 개의 인자를 받아들여 그 합을 반환하는 간단한 함수가 있습니다:

def my_sum(a, b):
return a + b

이 함수는 잘 작동하지만, 두 개의 인자에 한정되어 있습니다. 만약 실행 시간(runtime)에 전달되는 인자의 숫자가 결정되는 것처럼, 다양한 수의 인자를 합산해야 하는 경우에는 어떻게 해야 합니까? 전달되는 정수의 숫자와 상관없이 모든 정수의 합을 계산할 수 있는 함수를 생성하는 것이 좋을 것입니다.

이러한 상황에서 *args 사용은 매우 유용할 수 있습니다. 왜냐하면 args를 사용하면 가변적인 수의 위치 인자(positional argument)를 전달할 수 있기 때문입니다. 다음의 예를 살펴보겠습니다:

def my_sum(*args):
result = 0
# iterates over the Python args tuple
for x in args:
result += x
return result
print(my_sum(1, 2, 3))

이 예제에서는 더 이상 my_sum()에 리스트를 전달하지 않습니다. 그 대신, 전달되는 모든 인자는 args에 전달됩니다.