parameter Order
def func(positional, default, *args, Keyword, **kwargs):
위치 인수(positional argument)
- 함수에 인수를 순서대로 넣는 방식으로 인수의 위치가 정해져있다.
- 인수를 순서대로 넣을때는 리스트나 튜플 앞에
*
를 붙여 언패킹으로 넣을 수 있다.
가변 인수(variable argument)
def 함수명(*args):
실행코드
- 위치 인수를 사용하는 가변 인수 함수는 인수의 개수가 정해지지 않은 함수로 매개변수 앞에
*
를 붙여 만든다.
키워드 인수(Keyword Arguments)
def 함수명(keyword1, keyword2):
실행코드
함수명(keyword2 = value2, keyword1 = value1)
함수명(**dictonary)
- 인수에 이름을 붙이는 방식으로 순서에 상관없이 매개변수 이름에 맞추어 값을 전해 줄 수 있다.
- 딕셔너리 앞에
**
를 붙여 언패킹으로 넣을 수 있다.
!but
딕셔너리 언패킹을 사용할 때는 함수의 매개변수 이름과 딕셔너리의 Key가 같아야 한다.
가변 키워드 인수(variable keyword arguments)
def 함수명(**kwargs):
실행코드
- 키워드 인수를 사용하는 가변 인수 함수는 매개변수 앞에
**
를 붙여 만든다.
Parameter Default Value
def 함수명(parameter = default value):
코드
함수명()
- 초기값이 정의된 매개변수는 값이 전달되지 않은 경우 초기값이 사용되므로 함수를 호출할 때 해당 인수를 비워두고 호출 할 수 있다.
!but
초기값이 정의되지 않은 매개변수보다 먼저 위치하면 안된다.
👉 매개변수에 값을 전달할 때는 위치를 기준으로 하기 때문에 앞에 있는 매개변수에 초기값을 지정했다면 뒤에 있는 변수에도 초기값을 지정해야 한다. 그렇지 않으면 함수를 호출할 때 어떤 매개변수를 생략한 것인지 알 수 없게 되기 때문이다.