def 함수 이름(매개변수1, 매개변수2)
실행 구문
return 반환값태
def hello(your_name, my_name="이산"): print(f"Hello, {your_name}. I'm {my_name}.")
파이썬 함수를 정의할 때 사용하는 인자는 Positional, Arbitrary, Keyword 3종류로 나뉜다. 이들은 서로 판단의 우선순위가 존재하며, 엄격한 순서에 의해서만 선언되고 사용될 수 있다. Positional, Arbitrary, Keyword 순으로 우선순위를 가지며 함수는 이 순서를 토대로 인자를 받아서 처리한다.
def hello(a, b):
pass
hello(1)
def func(*args):
print(args)
func(1, 2, 3, 4)
출력 결과
(1, 2, 3, 4)
def func(a=0, b=0):
print(a, b)
func(1)
출력 결과
(1, 0)
def func(**kwargs):
print(kwargs)
func(a=1, b=2)
출력 결과
{'a': 1, 'b': 2}
위에서 본 3가지 형식의 인자는 물론 하나의 함수 정의 시에 섞어서 사용할 수 있다. 처음에 우선순위가 있다고 말했는데, 우선순위는 여기에서 중요해진다. 무조건 함수 정의 내의 인자 배치 순서는 positional - arbitrary - keyword 형태가 되어야 한다.
def func(a, b, c=0):
print(a, b, c)
func(a=1, b=2)
출력 결과
1 2 0
def func(c=0, a, b):
print(a, b, c)
func(a=1, b=2)
출력 결과
SyntaxError: non-default argument follows default argument