python tuple *rest

>>> values=1,2,3,4,5
>>> a,b,*rest = values
>>> a,b
(1, 2)
>>> rest
[3, 4, 5]

>>> a,b = values
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)
>>> a,b,*_ = values
>>> a,b
(1, 2)

>>> *_
  File "<stdin>", line 1
SyntaxError: can't use starred expression here
>>> values
(1, 2, 3, 4, 5)
  • 특수한 문법 *rest
  • 함수의 시그니처에서 길이를 알 수 없는 긴 인자를 담기 위한 방법으로도 사용한다.
  • 혹은 필요없는 값을 무시하기 위해 사용하기도 한다.
  • rest라는 이름 자체에는 특별한 의미가 없다.
  • 불필요한 변수라는 것을 나타내기 위해 _를 사용하는 관습도 있다.

좋은 웹페이지 즐겨찾기