본문 바로가기
CS/Python

[python] python에서 사용하는 점 3개( ... )의 의미

by Warehaus 2021. 12. 12.

 

 

Python code를 보다보면  점 세개를 연이어 사용하는 코드를 보게된다.

그냥 이런 동작을 하는구나 정도로 이해할 수 있지만

그래도 조금은 더 알아보기 위해서 이번 포스팅을 작성했다.

 

 

What is it?

 

... 은 뭔가?

일단 print를 한번 찍어봤다.

>>> print(...)
Ellipsis
>>>

 

Ellipsis 가 출력되는데 그럼 Ellipsis는 뭔가?

사전적 의미로는 생략, 생략부호(...) 이다.

 

그냥 말 그대로 쩜쩜쩜... 이다.

 

Python에서의 생략부호에 대한 설명은 다음과 같다.

 

The same as the ellipsis literal “...”. Special value used mostly in conjunction with extended slicing syntax for user-defined container data types.  Ellipsis is the sole instance of the types.EllipsisType type.

번역을 하면사용자가 정의하는 container 데이터 유형의 연장된 slicing syntax을 결합하는데 사용되는 리터럴이고,

EllipsisType 에서 유일한 인스턴스로 동작을 한다고 한다.

 

그냥 해석만 했을 때 느낌이 잘 오지 않는다. 어떻게 동작하는지를 보면 조금 더 이해가 가기 쉬울 것 같다.

How it work?

 

그래서 ... 은 어떻게 동작하는가?

 

일단은 slicing 하는 경우에 : 와 비슷한 용도로 사용 가능하다.

n = numpy.arange(16).reshape( 2,2,2,2)

n

array([[[[ 0, 1 ],
		[ 2, 3 ]],
       [[ 4, 5],
       	[6, 7]]],
        
        [[[8,9],
        [10, 11]],
        [[12, 13],
        [14, 15 ]]]])
        
        
n( 1, ..., 1 ) # n[1, :, :, 1 ]

array([[ 9, 11],
	[ 13, 15 ]])

    
n( 1, Ellipsism 1 ]

array([[ 9, 11],
	[ 13, 15 ]])

 

그리고 pass와 동일한 용도로도 사용 가능하다

 

if A is True:
    ...

 

궁금해서 여기저기 찾아보면서 정리를 해 봤는데, 뭔가 이걸 꼭 사용해야 한다 라는 사용처를 찾지는 못했다.

개인적 취향에 따라 사용여부가 갈리는 문법인 것 같다.