데이터 및 C언어/Python 공부 내용

[Python] 파이썬 *args(가변위치인자) & **kwargs(가변키워드인자)

  • -
반응형

 

 

 

[Python] 파이썬 *args(가변위치인자) & **kwargs(가변키워드인자)

 


 

∇ *args(가변위치인자) : variable length arguments

: 가변 위치 인자는 함수가 임의의 개수의 인자를 받을 수 있게 해주는 기능입니다.

   *args라고 쓰지만, args대신에 다른걸 아무거나 넣어도 괜찮습니다.

    - 이 지시어는 여러 개의 값(인자)를 함수로 입력 받고자 할 때 사용합니다.

        [정확히는, 정해지지 않은 수의 일반 인자] 

            --> 여러개의 인자를 받은 경우, 함수 내부에서는 "튜플"로 받은 것처럼 인식합니다.

        ∞ *args의 장점.

                  √ 유연성 : 함수가 다양한 수의 인자를 간결하게 처리할 수 있습니다.

                  √ 코드 재사용성 : 비슷한 기능을 하는 여러 함수를 하나로 통합할 수 있습니다.

 

       ++ 다른 매개변수와 같이 사용하는 경우에, 가변인자로 선언한 부분은 맨 뒤쪽으로 와야 합니다.

 


∇위치인자 vs 키워드인자.

 

 

++디폴트 출력값 만들어주기.

 


∇**kwargs(가변키워드인자). - keyword arguments

   가변위치인자와 마찬가지로,  일반적으로  **kwargs라고 쓸뿐이지,

    다른 단어로 써도 상관이 없습니다.

    *args와 다른 점이라면, **kwargs(가변키워드인자)는 키워드(키값-벨류값)으로 이루어진 복수의 인자를 받습니다.

      [정확히는, 정해지지 않은 수의 키워드(키값-벨류값)로 이루어진 인자]

 

 

 

**kwargs역시 *args처럼 다른 매개변수들과 같이 사용 될 때, 맨 뒤쪽에 넣어줘야 합니다.

 

        ∞ **kwargs의 장점.

                  √ 유연성 : 함수가 다양한 수의 키워드인자를  딕셔너리로 간결하게 처리할 수 있습니다.

                  √ 확장성 : 새로운 매개변수를 쉽게 추가할 수 있습니다.

 

 


 

∇  *args  vs **kwargs(가변키워드인자)의 차이점.

 

        √ 인자 전달 방식.

              - *args : 위치 & 값 기반으로 인자를 전달합니다,

              - **kwargs: 키--벨류값 쌍으로 인자를 전달합니다.

 

        √ 데이터 타입.

             - *args: 튜플(tuple)로 저장됩니다.

             - **kwargs: 딕셔너리로 저장됩니다.

 

        √ 사용 상황.

             - *args : 인자의 개수가 변할 수 있지만, 순서가 중요할 때 사용합니다.

             - **kwargs: 인자의 키-벨류 형태가 동적으로 결정될 때 사용합니다.

 

 

        ∞ *args와 **kwargs를 함께 사용하기 원할때는

            *args를 먼저 작성하고, 그 다음에 **kwargs를 작성합니다.

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.