본문 바로가기
IT/파이썬

파이썬 *args, **kwargs 의미는?

*args ,  **kwargs 이런 단어들이 파라메터로 나타나서 가끔 당황하게 만드네.

별거 아닌 거 같은데, 명확하게 적어둬....(찾아서 정리만 해 둬도 되)

 

아래 글로 방문해서 보면 끝!!

 

https://ddanggle.gitbooks.io/interpy-kr/content/ch1-args-kwargs.html

 

*args는 키워드 되지않은 가변 갯수의 인자들을 함수에 보낼 때 사용합니다.
for arg in args:
   print ("*argv의 다른 인자", arg)

**kwargs는 키워드된 가변 갯수의 인자들을 함수에 보낼 때 사용합니다.(역주: 가장 큰 차이는 keyword이냐 nonkeyword이냐입니다.) **kwargs는 함수가 이름이 지정된 인자를 처리할 때 사용해야합니다. 
if kwargs is not None:
   for key, value in kwargs.items():
      print("%s == %s" % (key, value))

결국 가변 갯수의 인자를 받아야 하는 경우 사용되는 것들이다.

물론 고정된 사이즈의 변수의 경우는 앞에 선언되어야 한다. 리스트의 끝은 알 수 없으니 말이다.

 

그리고 *args, **kwargs 를 동시에 쓸 수 도 있다. 

이때는 키=value 라는 패턴이 들어오기 전까지를 *args로 알아서 판단하는 것 같다.

 

*의 의미는 결국 들어오는 리스트 아이템의 종목 개수인가? ㅎㅎ

 

BJ.

키 분실은 안되요 ^^;;;

PhotoMIX Company 님의 사진, 출처: Pexels