매개변수와 전달인자에 대해 알아보기 이전에 함수의 구조에대하여 먼저 알아야한다.
함수의 구조는 보통 이렇게 생겼다.
funcname(parametername1, parametername2...)
funcname
는 함수의 이름이고, parametername
들은 함수의 매개변수(parameter)이다.
함수는 매개변수를 갖지 않거나 1개 이상 가지기도 한다.
또한 매개변수는 각각의 이름을 가진다. (변수니까 당연한 건가?)
위를 참고하면 매개변수는 함수의 입력값과 같은 역할을 한다는 것을 알았을 것이다.
그럼 전달인자는 무엇일까?
전달인자(arguments)는 매개변수에 data를 넣은 것을 의미한다.
arguments
: 함수로 전달되어 호출(call)되는 데이터
parameter
: 그 데이터의 이름
이라고 설명을 할 수 있겠다.
이해를 돕기 위해 간단한 함수를 만든 뒤 예시를 들어 설명하겠다.
한국어 이름을 입력받아서 한글자씩 출력해주는 함수이다.
def name_spliter(name) :
print(name[0])
print(name[1])
print(name[2])
엄준식을 함수의 입력값으로 작성하면,
name_spliter('엄준식')
엄
준
식
이런 결과가 뜰 것이다.
name
이 함수의 parameter
가 되는 것이고,
엄준식
이 함수의 arguments
가 되는 것이다.
함수의 arguments
는 두 가지 방법으로 작성할 수 있는데,
하나는 위치인자이고 다른 하나는 키워드인자이다.
위치인자(positional arguments)
전달인자(arguments)를 매개변수(parameter)의 위치와 일치시키는 것.
위치값이 기준이므로 입력순서가 바뀌면 함수가 원하는데로 작동하지 않을 수 있다.
함수의 매개변수의 수가 적거나, 전부 작성해야 하는 경우에 사용한다.
키워드인자(keyword arguments)
매개변수(parameter)에 등호를 이용하여 전달인자(arguments)를 할당하는 것.
작성하기 번거로운 단점이 있으나, 입력 순서에 영향을 받지 않는다.
함수의 매개변수의 수가 많거나 일부만 작성해도 되는 경우에 사용한다.
블로그에 작성된 여러 함수와 메소드의 syntax들을 보면 어떤 매개변수는 위치인자를 사용하고, 어느것은 키워드 인자를 사용하기도 한다. 이거진짜 상당히 햇갈림
이에 따른 혼란을 줄이기 위해 파라미터 설명 옆에 위치인자로 이용되는 매개변수는 L
, 키워드인자로 사용되는 매개변수는 K
로 작성할 예정이다.