파이썬 파라미터(parameter)와 아규먼트(argument)

카테고리 없음 2021. 4. 28. 12:00

파라미터와 아규먼트는 비슷한 녀석 같지만 엄연히 다른 녀석이다.

파라미터는 함수 선언 시 호출 부분에서 보내주는 데이터를 받는 변수를, 아규먼트는 함수 호출 시 함수에 보내주는 데이터를 의미한다는 데, 말로 해서는 잘 모르겠고 예시를 봐야 한다.

def example(x, y):
	print(x, y)
   
example(5, 6)

위의 예시에서 example이라는 함수가 선언되었는데, 파라미터로 x, y를 받고 있다. 그리고 마지막 줄에서는 example을 호출할 때 아규먼트로 5와 6을 입력하였다. 즉, 파라미터는 함수 선언부에서 괄호 속에 적히는 변수 그 자체를 의미하는 것이고, 아규먼트는 해당 변수에 입력할 값 자체를 의미하는 것이라고 볼 수 있다. (그래도 말로 하기는 난해하다...)

파라미터와 아규먼트와 관련해서 좀더 복잡한 내용도 있다. 바로 *, **이다. 이 녀석들은 함수의 파라미터가 몇 개인지 모를 때 사용하는 녀석들인데, **의 경우에는 변수 이름 조차 결정되지 않은(혹은 귀찮거나) 경우에 임의의 변수명을 사용할 수 있도록 딕셔너리 형태로 아규먼트를 받기 위해 사용된다.

def func(num1, num2, num3):
    return num1 + num2 + num3

data = [1,2,3]
func(*data)

위의 예시는 *을 이용한 경우인데, 배열의 데이터를 하나씩 쪼개지 않고 배열 그대로를 아규먼트로 넣어버렸다

def func(num1, num2, num3):
    return num1 + num2 + num3

data = {
	'num1': 1,
	'num2': 2,
	'num3': 3
}
func(**data)

위의 예시는 **을 이용해서 딕셔너리를 아규먼트로 넣어버렸다.

 

admin