ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파라미터로 *(star)와 **(double star) 는 어떤 의미 일까?
    언어/파이썬 2021. 1. 18. 16:39

    가끔 함수의 파라미터로 *와 ** 가 붙어있거나 list등을 인자로 넣어 줄때 function(*some_list) 같이 써있는 것을 볼 수 있다.

    이것은 어떤 의미를 나타내는 것일까?

    파이썬에서

    *는 언팩(unpack)이다. 즉 시퀀스 언팩킹 연산자로 말 그대로 시퀀스를 풀어헤치는 연산자를 뜻하며, 주로 튜플이나 리스트를 언패킹하는데 사용한다.

    **는 키/값 페어를 언패킹하는 연산자 이다.

     

    매개변수 *args 는 입력을 튜플로 변환하여 모두 받는다.

     

    매개변수 **kwargs는  입력으로 사전형과 같은 key ,value와 같은 형태만을 입력으로 받는다. 파라미터의 변수를 모든것을 사전형처럼 받는다.

     

     

    *args나 **kwargs 모두 일반 파라미터와 혼용해서 사용할 수 있다.

     

     

    또한 아래와 같은 방법으로도 사용할 수 있다.(**을 입력파라미터로 붙여주면 {}가 없어진다.)

     

    *을 입력파라미터로 넣어서 list의 원소를 unpack 하여 사용할 수도 있다. 

     

    python 3부터는 변수 뒤에 *를 붙어 아래와 같은 방법으로 사용 할 수 있다.

     

    마지막으로 함수인자 * 뒤부터는 모든 것을 keyward로 받을 수 있다.  

    함수에서 받는 매개변수를 선언 할때 ** 매개변수는 가장 마지막에 선언되어야 한다.

    '언어 > 파이썬' 카테고리의 다른 글

    yield  (0) 2021.01.20
    원형 큐(Circular Queue)  (0) 2021.01.18
    Queue  (0) 2021.01.16
    Deque  (0) 2021.01.16
    os.environ  (0) 2021.01.14

    댓글