본문 바로가기
python

*args, **kwargs

by hyundy 2021. 10. 21.

*args, **kwargs 파이썬으로 개발 하다 보면 자주 보이는 것들이다. 

대충 복수개의 인수를 받을때 사용 한다만 알고 있는데 이번 기회에 자세히 알아보자

 

*args

arguments 인수라는 뜻으로 변수에 담기는 값을 의미 하는데 매개변수(parameter)로 선언 할때 꼭 args 일 필요는 없다. 

* 이것만 붙이면 복수개 인수를 담는다는 의미가 된다. 

def display(*msg):
    print(type(msg))  
    print(msg)  

display("안녕","나는", "파이써이야")

이렇게 이름을 바꿔서 사용이 가능하다.

type도 궁금해서 알아보니 tuple 로 출력 해준다. 

 

 

**kwargs 

keyword arguments 키워드 + 인수 하면 뭐가 생각 나는가? 

딕셔너리 형태의 데이터가 생각 날것이다. {'key':'value'}

** 이것만 붙이면 키값 형태로 처리한다는 의미가 된다.

def display(**msg):
    for key, value in msg.items():
        if 'python' in msg.keys():
            print('성공')
            
        else:
            print("{0} is {1}".format(key,value))
 

display(name='JS')
display(python='good')

 

마지막으로 *args, **kwargs 순서도 중요하다 같이 사용 하는 경우 반대가 되면 작동 하지 않으니 주의하자 

'python' 카테고리의 다른 글

파이썬 메모리 관리  (0) 2021.10.29
Decorator  (0) 2021.10.21
Closure  (0) 2021.10.21
first_class function  (0) 2021.10.21
python package pandas  (0) 2021.10.08