Python 강좌 : 제 32강 - 인자
인자(Argument)
인자(Argument)
는 매개변수(Parameter)
에 전달되는 실질적인 값(value)
를 의미합니다.
함수에 정의된 값을 전달하는 것이 인자가 됩니다.
def func(a, b)
에서 a, b는 매개변수가 되며, a와 b에 전달하는 값이 인자입니다.
Python에서는 사전에 정의되지 않은 여러 개의 인자를 전달할 수 있습니다.
*args(Tuple)
- 결과
- Type: <class ‘tuple’>
Lenght: 4
([1, 2], 3, 4, 5)
매개변수를 할당할 때 *args
를 사용한다면, 여러 개의 인자를 받아 처리할 수 있습니다.
args는 argument의 약어로, 매개변수의 이름을 *args
가 아닌, 다른 이름으로도 할당이 가능합니다.
매개변수의 이름에 와일드카드(*)
가 작성되면, 입력되는 인자들을 튜플로 처리합니다.
입력된 인자들의 순서에 따라 args
변수에 값이 할당됩니다.
**kwargs(Dictionary)
- 결과
- Type: <class ‘dict’>
Lenght: 3
{‘a’: 1, ‘b’: 2, ‘c’: 3}
매개변수를 할당할 때 **kwargs
를 사용한다면, 여러 개의 인자를 받아 처리할 수 있습니다.
kwargs는 keyword argument의 약어로, 매개변수의 이름을 **kwargs
가 아닌, 다른 이름으로도 할당이 가능합니다.
매개변수의 이름에 와일드카드(*)
가 두 번 작성되면, 입력되는 인자들을 사전으로 처리합니다.
입력된 인자들의 키 값
에 따라 kwargs
변수에 값이 할당됩니다.
*args(Tuple), **kwargs(Dictionary) 혼용
- 결과
- 120 개입니다.
*args
와 **kwargs
를 동시에 사용한다면, *args
, **kwargs
순서로 사용합니다.
키(Key)
값이 할당되지 않은 인자는 *args
로 처리하며, 할당된 인자는 **kwargs
로 처리합니다.
기본 인자가 포함되는 경우 다음과 같이 사용할 수 있습니다.
- 결과
- 계산된 값입니다.
120 개입니다.
위치 인자(Positional Argument)
는 항상 **kwargs
보다 앞에 있어야합니다. 즉, **kwargs
가 가장 마지막에 있어야합니다.
위치 인자는 항상 키(Key)
를 갖고 있기 때문에, *args
보다 뒤에 올 수 있습니다.
단, 위치 인자가 *args
보다 뒤에 있을 경우, 키(Key)
를 명시해야합니다.
위치 인자가 *args
보다 앞에 있을 경우, 키(Key)
를 명시하지 않아도됩니다.
위치 인자가 앞에 포함되는 경우 다음과 같이 사용할 수 있습니다.
- 결과
- 계산된 값입니다.
값이 10배 커집니다.
120 개입니다.
위치 인자가 앞에 포함되면, 매개변수의 순서대로 값이 할당됩니다.
*args(Tuple)
와 **kwargs(Dictionary)
를 혼용해 사용하는 경우 매개변수의 할당 순서가 중요합니다.
매개변수의 개수와 일치하지 않는 경우, message2
에 3
이 할당되어 함수가 잘못된 결과를 반환할 수도 있습니다.
댓글 남기기