Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬의 ..(점 두 개) 표기법 구문이란 무엇일까?

파이썬에는 특별한 .. 표기법이 존재할까?

결론부터 말하자면, 파이썬에는 ..("점 두 개")라고 하는 특별한 표기법 구문은 존재하지 않습니다. 다만 실수(float) 객체의 속성이나 메서드에 접근하는 코드를 작성할 때, 마치 그런 표기법이 있는 것처럼 보이는 경우를 종종 목격할 수 있습니다.

예제: 1..__truediv__

대표적인 예시는 다음과 같습니다.

f = 1..__truediv__  # 파이썬 2에서는 1..__div__
print(f(8))

위 코드를 실행하면 다음과 같은 출력을 얻습니다.

0.125

어떻게 동작하는 걸까?

여기서 핵심은 소수점 뒤의 0을 생략한 실수 리터럴이라는 점입니다. 즉, 1.은 실수 1.0을 의미하며, 이 실수 객체의 나눗셈 메서드인 __truediv__에 접근한 것입니다. 참고로 __truediv__/ 연산자의 내부 구현으로, 위 예제에서 f(8)은 결국 1.0 / 8과 동일하여 0.125가 출력됩니다.

따라서 .. 자체가 하나의 독립된 연산자는 아닙니다. 첫 번째 점(.)은 실수 값의 일부이고, 두 번째 점(.)은 객체의 속성과 메서드에 접근하기 위한 도트 연산자입니다.

더 명확하게 작성하는 방법

같은 내용을 가독성 좋게 표현하고 싶다면 다음과 같이 작성할 수 있습니다.

>>> f = 1.
>>> f
1.0
>>> f.__truediv__

이렇게 소수점 뒤에 0을 붙여 1.0으로 명시하거나 변수에 먼저 할당하면, 코드의 의도가 훨씬 분명해집니다. 요약하자면, 파이썬에서 1..__truediv__ 같은 표현은 특수 문법이 아니라 "실수 리터럴 + 속성 접근"이 겹쳐 보인 결과일 뿐입니다.