본문 바로가기
programming/Python

파이썬 함수 임의 매개변수 *args 사용 python function arbitrary arguments

by 개코 - 개발과 코딩 2021. 10. 26.

파이썬 함수는 *args 를 이용하여 입력된 값들을 임의로 선택할 수 있다. 함수에 인수를 여러 개 보내지면 규칙적인 컬렉션형태라면 함수내에서 인수를 선택하여 사용할 수 있다. 개발자는 단지 어떤 값을 사용할지에 대해 위치만 알면 그만이다. 사용되는 형태는 배열과 비슷하다.

파이썬 임의 매개변수 *args 사용
python arbitrary arguments

함수에 인수를 보내는 것에 대해 많은 개발자들은 고민한다.

기본값을 사용하기도 하고 함수를 호출하기 전에 값을 선택하기도 한다.

혹은 여러 값을 묶어서 함수에 보낸 후 함수에서 값을 가공한다.

방법은 어찌됐든 상관없다.

다만, 함수에 인자값을 보낼 때 어떻게 하면 쉽게 보내고 함수 내에서 인자값을 쉽게 사용할 수 있으면 좋다.

파이썬의 함수에서 *args 는 이러한 고민을 해결해 준다.

사용 방법

파이썬 함수에서 *args 를 사용하고자 한다면 함수를 호출하는 곳에서 여러개의 인자값을 보내면 된다.

여러개의 값이 될 수도 있고, 컬렉션이 될 수도 있다.

물론, 무식하게 컬렉션의 형태를 보내는 사람도 있을 것이다.

사용법은 아래와 같다.

print('----------')

#- 함수부분
def pythonFunction(*args) : #-{

    return argument[1]
    
#-}

#- 코드부분
pythonFunction(값, 값, 값, ....)
pythonFunction(컬렉션, 컬렉션, 컬렉션, ....)

print('----------')

샘플 코드

파이썬 함수는 데이터 타입에 관대하다.

하지만 *args를 사용할 경우 데이터타입은 동일해야 한다.

이유가 있다면 동일한 데이터 형태의 컬렉션을 데이터를 보내기 떄문이다.

print('----------')

#- 함수부분
def pythonFunction(*args) : #-{

    vResult = argument[1] + argument[2]

    return vResult
    
#-}

#- 코드부분
vResult = pythonFunction(100, 300, 500)
print("함수 호출 결과 vResult", type(vResult), vResult )

vResult = pythonFunction("YGEnt ", "블랙핑크", "BlankPink")
print("함수 호출 결과 vResult", type(vResult), vResult )

print('----------')

결과화면을 보자.

함수를 호출하면서 인자값을 여러 개 보내주고 있다.

함수에서는 인자값을 선택적으로 사용하고 있다.

데이터를 처리하고 결과값을 반환한 후 호출한 곳에서 함수에서 제공한 결과값을 출력하고 있다.

반응형

댓글