[TIL] Function Arguments

양희연·2020년 5월 26일
0

Python

목록 보기
3/10
post-thumbnail

🤔 헷갈리기 쉬운 부분이라 따로 정리해보았다.

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}


참고자료: https://getkt.com/blog/python-keyword-only-arguments/

profile
꾸준히 나아가자!

0개의 댓글