본문 바로가기
기본소양/Pythonic CODE

[Pythonic CODE] 5. Asterisk ( * )

by EXUPERY 2021. 1. 24.
반응형

 

Asterisk ( * )

Life is short, you need python !

 


 

Asterisk ( * )

라이브러리의 doc를 보시면 *args와 **kwargs를 보신 적이 있을 것입니다. 예시를 보는 것이 가장 빠를 것 같습니다.

 

 

*args

hello라는 함수를 정의하였습니다. 3~8의 숫자를 넣었을 때, 3은 x로 들어가고, 4는 y로 들어가고 나머지가 *z가 되는 것입니다. 데이터 타입은 튜플로 나오게 됩니다. 이처럼 뒤의 갯수를 모를 때 앞에 별표 하나를 입력하면 어렵지 않게 사용할 수 있습니다. doc에서 *args는 갯수가 정해져있지 않은 argument들을 의미합니다. 여러개의 값을 한번에 받을 수 있죠! 파라미터에 *args를 씀으로써 유연하게 인자들을 받을 수 있습니다.

 

 

**kwargs

hi라는 함수를 정의하였습니다. kwargs는 keyword arguments를 의미합니다. 갯수가 정해져있지 않은 키워드 인자들을 받을 수 있습니다. 예시에서, 키워드가 이번엔 dict값으로 들어가게 됩니다.

 

 

Unpacking

(1,2,3,4,5)는 하나짜리 튜플입니다. 튜플안에 5개가 있다고 해서 5개가 아니라 '한 개'의 튜플입니다. 이 것을 Asterisk를 통해 풀어줄 수도 있습니다. 위의 예시같이 (1,2,3,4,5)로 반환되는 것이 아니라 다섯개로 반환되는 것입니다.

우리가 파라미터에 *를 썼듯, 인자에 *를 붙여주면 언팩킹이 됩니다.

 

 

Practice

1과 10을, 2와 20을 더해주기 위해서 example를 zip한 뒤에 sum을 했더니 에러가 나왔습니다. 실제로 작동되는 것은 example의 첫 번째 요소인  [1,2]와 ( )를 더하고, [10, 20]과 ( )를 더해주는 것입니다. 이 때 Asterisk를 사용할 수 있습니다.

 

반응형

댓글