파이썬/파이썬(python) 중급

[27-3 파이썬] *args(Many Positional Arguments), 가변인수, 가변위치인수

Olivia-BlackCherry 2022. 9. 13. 17:44

*

연산에서 곱하기를 의미하고
한글로 별이라고 불리는 이 기호의 또 다른 이름은
' 아스테리스크 '이다.
오늘은 아스테리스크를 활용하여 여러 개의 인수를 취할 수 있는 함수를 만들어보겠다.


함수 파라미터 앞에 아스테리스크를 붙이면
함수를 호출할 때 몇 개의 인수라도 허용한다는 것을 뜻한다.
* 다음에 붙는 args는 arguments의 약자로 '앍스'라고 불리며 개발자들 사이에 관습적으로 사용되지만
apple, love, book 등 다른 용어를 써도 무방하다.


먼저 *args를 파라미터로 하는 study함수를 만들고, args를 출력해보자.

def study(*args):
    print(args)
study(1,2,3,4)

출력값은 튜플형태이다.
(1, 2, 3, 4)


튜플 형태이기 때문에 위치 접근도 가능하다.

def study(*args):
	args[0]
    
study(1,2,3,4)

첫 번째 위치인 1값이 출력된다.


이번에는 여러 인수를 모두 더하는 함수를 만들어보자.

def add(*args):
	for n in args:
    	print(n)
        
add(5,3,4,5,6)

인수를 5,4,3,5,6 총 5개를 적었지만 더 많이 적어도 된다!
왜냐면
*아스테리스크를 붙였기 때문이다!

def add(*args):
	for n in args:
    	print(n)
        
add(5,3,4,5,6,2,1,2,34,5,6,7,2,4,6,8,5,6,66)

이렇듯 인수는 계속하여 추가되거나 삭제될 수 있다.
즉, 변할 수 있다.
이런 이유 때문에 *args를 가변인수라고도 부른다.

또한 튜플 형태이기 때문에
많은 arguments마다 위치 인덱스가 있기에
가변 위치 인수라고 불리기도 한다.

또는. unlimited positional argument
무제한 위치 인자라고 불러도
직설적인 뜻이 전달되겠다.