🤔 헷갈리기 쉬운 부분이라 따로 정리해보았다.
positional arguments: 함수에 인수를 순서대로 넣는다.
def my_func(a, b):
print(a, b)
my_func(10, 20)
#출력결과
#10 20
variable length arguments: 결과값이 튜플로 반환된다. *args
def my_func(*args):
print(args)
numbers = [1, 2, 3, 4, 5]
#인자 1개
my_func(numbers) #([1, 2, 3, 4, 5], )
#인자 여러개
my_func(*[1, 2, 3, 4, 5]) #(1, 2, 3, 4, 5)
keyword arguments: key-value 인자를 사용하며, 순서가 달라도 된다.
def my_func(a, b):
print(a, b)
my_func(b=10, a=20)
#출력결과
#20, 10
variable keyword arguments: 결과값이 딕셔너리로 반환된다. **kwargs
def my_func(**kwargs):
print(kwargs)
my_func(a=10, b=20, c=30) #{'a': 10, 'b': 20, 'c': 30}
파이썬 함수는 parameter를 받는 순서가 정해져 있는데 이 순서를 지키지 않으면 에러가 발생한다.
따라서 함수 정의 시 순서에 맞게 선언해야 한다.
그 순서는 아래와 같다.
💡 함수 선언 시 매개변수 순서 💡
def func(위치, 기본값, 가변위치, 키워드, 키워드(기본값), 가변키워드):
=def func(위치, 기본값, 가변위치, 키워드(기본값), 키워드, 가변키워드):
def func(a, b, c=0, *args, d, e=10, **kwargs):
print(a, b, c, args, d, e, kwargs)
func(1, 2, 3, 4, 5, d=9, e=100, f=6)
#실행결과
#1 2 3 (4, 5) 9 100 {'f': 6}